วิธีการคำนวณสีอื่นที่มีความสว่างเท่ากันกับค่าสีเทาที่กำหนด?


11

นี่เกี่ยวข้องกับคำถามที่ฉันถามใน tex.stackexchangeซึ่งมีสีด้าน ผลลัพธ์ของคำถามนั้นคือภาพต่อไปนี้:
ค่าและความคมชัดความอิ่มตัว

ฉันวาดชุดสี่เหลี่ยมสีเทาทางซ้ายมือโดยมีกิ่งสีแดงแยกออกไปทางขวา เป้าหมายคือมีสี่เหลี่ยมสีแดงต่างกันด้วยความอิ่มตัวต่างกัน แต่ทั้งหมดมีค่าสีเทาเหมือนกัน ในรูปแบบสี hsv พวกเขาทั้งหมดมีเหมือนกันvแต่เมื่อฉันแปลงภาพเป็นสีเทาโดยใช้ Gimp พวกเขาจะไม่ถูกแปลงเป็นสีเทาเดียวกัน ความประทับใจจากภาพคือสี่เหลี่ยมสีแดงด้านขวาเข้มกว่าด้านซ้าย

ฉันจะให้สีเทาที่แน่นอนคำนวณสีด้วยเฉดสีที่แน่นอนและค่าสีเทาเดียวกันได้อย่างไร (หรือดีกว่าด้วยความประทับใจสีเทาเดียวกัน) สีที่ใช้ในภาพนั้นถูกคำนวณทั้งหมดดังนั้นฉันจึงชอบโซลูชันที่รวมการคำนวณไว้ด้วย

ฉันอาจใช้คำศัพท์ผิดที่นี่ - ฉันเป็นวิศวกรเครื่องกลดังนั้นโปรดแก้ไขให้ฉันตามความเหมาะสมหรือขอคำชี้แจง


คำแนะนำในการใช้พื้นที่สี Lab ทำให้ฉันได้ข้อสรุป:

  • ฉันสามารถใช้Lค่าของแบบจำลอง Lab เพื่อตั้งค่าสีเทาบางอย่างสำหรับสีที่ต่างกัน ใน HSV vรุ่นนี้อยู่ ฉันไม่แน่ใจว่าฉันได้รับอนุญาตให้เปรียบเทียบจริง ๆ หรือไม่ แต่ฉันจะทำจนกว่าจะมีคนบ่น

  • ในรุ่น 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) ผลลัพธ์:

ป้อนคำอธิบายรูปภาพที่นี่

ขอบคุณ!


2
มีสิ่งต่าง ๆ มากมายที่คุณอาจพบว่ามีประโยชน์ในรายการ wikipedia แต่ฉันพบ ( en.wikipedia.org/wiki/HSL_and_HSV#Dis ข้อดีข้อเสีย ) ของปัญหาของคุณโดยเฉพาะ: "เพราะ HSL และ HSV ถูกกำหนดอย่างหมดจดด้วย อ้างอิงถึงพื้นที่ RGB บางแห่งพวกเขาไม่ใช่พื้นที่สีแน่นอน: เพื่อระบุสีอย่างแม่นยำต้องรายงานไม่เพียง แต่ค่า HSL หรือ HSV แต่ยังรวมถึงลักษณะของพื้นที่ RGB ที่พวกเขาอาศัยอยู่รวมถึงการแก้ไขแกมม่าที่ใช้งานอยู่ "
horatio

ดังนั้นความคิดที่ชัดเจนคือการระบุพื้นที่สีแกมม่าและ RGB (ถ้าเป็นไปได้!) เมื่อพยายามแปลง
horatio

2
ความคิดที่ดียิ่งกว่าคือ RGB → L * a * b * → RGB; เนื่องจากห้องแล็บได้รับการออกแบบมาเพื่อคาดคะเนวิสัยทัศน์ของมนุษย์และความสว่างเป็นหนึ่งในมิติ
Jari Keinänen

@koiyu Lab เป็นวิธีที่ฉันแนะนำการจับคู่สีเทาด้วย (คุณเอาชนะฉันมัน! ฉันเยาะเย้ยคำตอบด้านล่างเมื่อคุณโพสต์นี้.)
Nick

ผมก็หลีกเลี่ยงการอภิปรายปัญหาของการรับรู้สี :)
Horatio

คำตอบ:


10

คุณสามารถใช้พื้นที่สีแล็บเพื่อค้นหาคู่ของคุณ สีที่มีค่า L เหมือนกันกับสีเทาเป้าหมายของคุณจะมีลักษณะเกือบจะเหมือนกันเมื่อแปลงเป็นสีเทา

ตัวอย่างเช่น Lab สีเทาของ (50, 0, 0) จะมีลักษณะคล้ายกับ Lab สีแดง (50, 30, 0), (50, 50, 30) และ (50, 50, 50) เมื่อแปลงเป็น โทนสีเทา ตัวอย่างด้านล่างใช้ Photoshop (รูปภาพ> โหมด> โทนสีเทา) เพื่อแปลงจาก Lab เป็นสีเทา: สีแล็บดั้งเดิม
แปลงเป็นโทนสีเทา


นั่นดูเหมือนสิ่งที่ฉันต้องการ! ขอบคุณ. อย่างไรก็ตามฉันไม่สามารถใช้ Lab โดยตรงกับชุดเครื่องมือของฉันดังนั้นฉันต้องการอัลกอริทึมการแปลงบางอย่าง Koiyu แนะนำให้แปลง RGB -> Lab -> RGB และฉันจะลองใช้มัน
Christoph

1
ผมพบว่าต่อไปนี้: http://www.brucelindbloom.com/index.html?Equations.html ฉันไม่รู้ว่าการแปลงนั้นถูกต้องหรือไม่และฉันรู้สึกว่าเวทมนต์บางอย่างยังต้องการอยู่
Christoph

ฟังก์ชั่นการแปลงเหล่านี้ดูเหมือนว่าอาจมีประโยชน์
Nick

และพวกเขาก็มองตรงไปอีกเล็กน้อย ...
Christoph

@Nick ฉันสามารถคำนวณทั้งหมดด้วยเครื่องคิดเลขได้ดี อย่างไรก็ตามฉันต้องใช้การแปลงโมเดลสีในเอกสาร LaTeX ของฉันซึ่งทำให้ฉันปวดหัวที่นี่และที่นั่น เมื่อเสร็จแล้วฉันจะโพสต์ผลลัพธ์และยอมรับคำตอบของคุณ
Christoph

4

ดังนั้นคำแนะนำข้างต้นจาก Nick ใช้งานได้กับความสว่าง 50% เท่านั้น หากคุณใช้ค่า L อื่น ๆ ที่เหมือนกับสีที่ต่างกันผลลัพธ์สีเทาจะแตกต่างกัน

จะต้องมีคณิตศาสตร์สำหรับเรื่องนั้น แต่คุณสามารถทำมันบนหน้าจอด้วยตา

หากคุณสร้างสีทั้งหมดที่คุณต้องการแล้ววางองค์ประกอบสีเทา (นักวาดภาพประกอบ) หรือเลเยอร์ (photoshop) ด้วยโหมดความโปร่งใสเป็น "สี" (หรือความอิ่มตัวหรือสี) ที่จะทำให้องค์ประกอบทั้งหมดด้านล่างเพื่อเปิดเผยความส่องสว่างของมัน

คุณควรตรวจสอบให้แน่ใจว่าทุกสีด้านล่างที่องค์ประกอบสีเทามีความอิ่มตัว 100 หรือคุณจะได้ผลลัพธ์เป็นสีเทาแทนที่จะเป็นสีที่สวยงาม

ตอนนี้ปัญหาคือ: ด้วยวิธีการทั้งหมดข้างต้นคุณจะทำให้องค์ประกอบทั้งหมด "ความสว่างเดียวกันภายในโปรไฟล์ RGB ที่ใช้" คือสีเทาเดียวกันสำหรับ "อุปกรณ์" ที่เลือกและส่วนที่แย่ที่สุด: ดวงตาเป็นอุปกรณ์ และมีความแตกต่าง

คุณสามารถแสดงสีเดียวกันให้กับผู้คนที่แตกต่างกันและพวกเขาจะไม่พบ "สมดุล" ที่เหมือนกันกับผู้อื่น

เพิ่มความจริงที่ว่าคุณกำลังตั้งค่าสีเหล่านั้นเป็น "ความส่องสว่างเดียวกัน" ในอุปกรณ์ที่เลือกและไม่เพียง แต่พวกเขาทั้งหมด "ประเมิน" ทันทีที่คุณแสดงในอุปกรณ์ที่แตกต่างกันผลจะล้มเหลวเพราะทุกอุปกรณ์ มีความสามารถของตัวเองในการส่องแสงองค์ประกอบสีแดงสีเขียวหรือสีน้ำเงินที่มีความเข้มต่างกันดังนั้นคุณอาจได้รับเช่นองค์ประกอบสีแดง

นอกจากนี้หากคุณผสมผสานจากสีเทาเป็นสีตามที่แนะนำไว้ข้างต้นคุณต้องตรวจสอบให้แน่ใจว่าองค์ประกอบสีเทามีอย่างน้อย 1/255 ขั้นต่ำในทุกช่อง (เช่นไม่ใช่สีเทาอีกต่อไป) หรือซอฟต์แวร์จะพิจารณาสีเทาดั้งเดิมเป็น 0-hue ซึ่งจะให้เสียงกลางเป็นสีแดง (เนื่องจากการผสมผสานระหว่าง 0 สีและสีอื่น ๆ จะเป็นครึ่งทางต่อสีแดง)

ฉันเป็นผู้เชี่ยวชาญก่อนกดตั้งแต่ '90s และคำแนะนำของฉันคือ: หากคุณกำลังจะไปกับคณิตศาสตร์คุณควรใช้คณิตศาสตร์สำหรับสายตา (ความสามารถในการมองเห็น) เช่นเดียวกับที่อุปกรณ์สำหรับคุณจะแสดง ตัวเลขเหล่านั้นใน

โชคดี.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.