เปลี่ยนความยาวคลื่นแสงเป็นโค้ดสี

, , 2 Comments

บันทึกงานแบบสั้นๆเก็บไว้ครับ ปัญหาเกิดตอนที่จะทำภาพแบบ Grayscale ที่ได้จากกล้องให้เป็นภาพสี เรารู้ว่าภาพที่ได้เกิดจากแสงที่มีความยาวคลื่นเท่าไหร่ในระดับนาโมเมตร คำถามที่ตามมา คือ แล้วแสงที่มีความยาวคลื่นเท่านี้ มันเป็นสีอะไร?

แสงที่ตาเรามองเห็นมีความยาวคลื่นประมาณ 390->750 นาโนเมตร ถ้านึกไม่ออกคิดถึงแฉดสีของรุ้งกินน้ำครับ

Spectrum

ม่วง->คราม->น้ำเงิน->เขียว->เหลือง->ส้ม->แดง

ยกตัวอย่าง ถ้าหากแสงที่ความยาวคลื่น 532 นาโมเมตร ตาเรามองที่เลเซอร์ก็รู้ว่าเป็นแสงสีเขียว แล้วจะใช้โค้ดสีตัวไหนดีในขั้นตอนใส่สีถึงจะถูกต้องหรือใกล้เคียงที่สุด? (เขียวเข้ม เขียวอ่อน เขียว ฯลฯ อะไรประมาณนี้)

นึกอยู่สักพักก็ทดลองเอาแผ่น color checker ไปถ่ายภาพคู่กับแสงที่อยากรู้ เอาเข้า photoshop ปรับแสงสีให้สีใน color checker ถูกต้อง แล้วหยิบเอาสีของแสงที่ต้องการออกมา ดูว่ามีโค้ดอะไร บันทึกเก็บไว้ ภายหลังรู้วิธีที่ง่ายกว่านี้ แต่โค้ดสี RGB ที่ได้จากวิธีนี้ก็ใกล้เคียงพอสมควร แต่คงลำบากมากถ้าต้องทำหลายๆตัว และยังมีปัจจัยอื่นอีกหลายๆอย่างที่เราควบคุมได้ยาก

หลังจากนั้นเลยพยายามลองค้นหาข้อมูลดู คิดว่าเรื่องพื้นฐานแบบนี้ต้องมีคนเจอเหมือนกันสิ แล้วก็พบ เรื่องแบบนี้คนอื่นเขามีปัญหาเหมือนกัน และก็คิดทางออกไว้หมดแล้ว

Chromaticity coordinates
  • อันแรกใช้งานผ่านเว็บไซต์ได้เลยที่ Wavelength To RGB เว็บนี้ใส่ความยาวคลื่นแสงในหน่วยนาโนเมตรเข้าไป เว็บจะคำนวณแล้วรายงานรหัสสี RGB, Hex มาให้เลย ง่ายและสะดวกดี
  • มีคนทำโปรแกรมให้ใช้ง่ายๆ สำหรับ Windows ด้วยนะ ดาวน์โหลดได้ที่ wavelengthtoRGB เอา Algorithm มาจาก https://www.midnightkite.com ผลลัพท์ที่ได้ต่างกับตัวที่ใช้บนเว็บนิดหน่อย แต่ไม่ซีเรียสขนาดนั้น เพราะเราแยกสีสองอันไม่ออกหรอก!
  • มีรายละเอียดอื่นๆเกี่ยวกับ Spectrum&RGB ที่น่าสนใจ เกี่ยวกับสี วิธีการอนุมาณสีจากความยาวคลื่นในแบบต่างๆ ปัจจัยที่ทำให้สีที่ได้แตกต่างกัน ดูได้ที่ https://mintaka.sdsu.edu, https://www.fourmilab.chhttps://www.techmind.org
จบด้วยภาพเทียบระดับของ RGB, ความยาวคลื่น, สีที่มองเห็น
ความยาวคลื่นเทียบกับสีที่มองเห็น

ก่อนจะฉลาดต้องโง่ก่อนสินะ!

 

2 Responses

Leave a Reply