นี่เกี่ยวข้องกับคำถามที่ฉันถามใน tex.stackexchangeซึ่งมีสีด้าน ผลลัพธ์ของคำถามนั้นคือภาพต่อไปนี้:
ฉันวาดชุดสี่เหลี่ยมสีเทาทางซ้ายมือโดยมีกิ่งสีแดงแยกออกไปทางขวา เป้าหมายคือมีสี่เหลี่ยมสีแดงต่างกันด้วยความอิ่มตัวต่างกัน แต่ทั้งหมดมีค่าสีเทาเหมือนกัน ในรูปแบบสี hsv พวกเขาทั้งหมดมีเหมือนกันv
แต่เมื่อฉันแปลงภาพเป็นสีเทาโดยใช้ Gimp พวกเขาจะไม่ถูกแปลงเป็นสีเทาเดียวกัน ความประทับใจจากภาพคือสี่เหลี่ยมสีแดงด้านขวาเข้มกว่าด้านซ้าย
ฉันจะให้สีเทาที่แน่นอนคำนวณสีด้วยเฉดสีที่แน่นอนและค่าสีเทาเดียวกันได้อย่างไร (หรือดีกว่าด้วยความประทับใจสีเทาเดียวกัน) สีที่ใช้ในภาพนั้นถูกคำนวณทั้งหมดดังนั้นฉันจึงชอบโซลูชันที่รวมการคำนวณไว้ด้วย
ฉันอาจใช้คำศัพท์ผิดที่นี่ - ฉันเป็นวิศวกรเครื่องกลดังนั้นโปรดแก้ไขให้ฉันตามความเหมาะสมหรือขอคำชี้แจง
คำแนะนำในการใช้พื้นที่สี Lab ทำให้ฉันได้ข้อสรุป:
ฉันสามารถใช้
L
ค่าของแบบจำลอง Lab เพื่อตั้งค่าสีเทาบางอย่างสำหรับสีที่ต่างกัน ใน HSVv
รุ่นนี้อยู่ ฉันไม่แน่ใจว่าฉันได้รับอนุญาตให้เปรียบเทียบจริง ๆ หรือไม่ แต่ฉันจะทำจนกว่าจะมีคนบ่นในรุ่น hsv ฉันยังสามารถตั้งค่า "สีพื้นฐาน" (สี) ซึ่งฉันไม่สามารถหาได้ในรุ่น Lab
ในรูปแบบ hsv ฉันมี 2 ค่าคงที่ (ในภาพด้านบน:
h
= 0,v
= 0.375) และหนึ่งตัวแปร (s
)ถึงตอนนี้ฉันมีค่าคงที่เพียงหนึ่งเดียวในรุ่น Lab ไม่เพียงพอที่จะสร้างสิ่งที่คล้ายกับสิ่งที่ฉันทำกับโมเดล hsv แล้ว
ฉันเดาว่าถึงเวลาสำหรับการทดลองแล้ว
ทำ! หลังจากที่ฉันได้รับรหัสการแปลงทำงานมันก็ง่ายมาก ขั้นตอนแรกคือการกำหนด "เป้าหมายสีแดง" ทางด้านขวา ฉันคำนวณ RGB2Lab (255,0,0) และเปลี่ยนค่า L ของผลลัพธ์เป็น L ที่ต้องการในรูป (L = 62.5) สีถูกคำนวณโดยใช้การแก้ไขเชิงเส้นในพื้นที่ Lab ตั้งแต่ (L, 0,0) ถึง (L, aTarget, bTarget) ผลลัพธ์:
ขอบคุณ!