คุณจะหลีกเลี่ยงแถบสีที่โดดเด่นในการไล่ระดับสีได้อย่างไร


13

นี่คือการสร้างภาพทางวิทยาศาสตร์มากกว่าการออกแบบกราฟิก แต่ฉันคิดว่าทฤษฎีเหมือนกัน ใน colormaps ที่ใช้สำหรับการแสดงภาพข้อมูลมักจะมีแถบสีที่โผล่ออกมาเมื่อพวกเขาไม่ควร ฉันเชื่อว่าพวกเขาเป็นรูปแบบของMach Mach ?

ตัวอย่างเช่นฉันใช้colormap สองขั้วนี้และสร้างภาพเช่นนี้:

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

มันเกือบจะเหมือนวงแหวนของส้มนีออนประมาณ 0.2 และอันที่คล้ายกันสำหรับสีน้ำเงินประมาณ -0.2 นี่คือพล็อตของส่วนประกอบ RGB และการคำนวณความสว่างสัมพัทธ์ในสีดำ:

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

ฉันปรับแต่งมันด้วยตนเองเพื่อพยายามกำจัดวงดนตรีและประสบความสำเร็จ แต่ฉันไม่เข้าใจทฤษฎีที่อยู่เบื้องหลัง:

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

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

มันดีกว่า แต่ฉันยังคงเห็นวงอยู่

สำหรับอีกตัวอย่างหนึ่งสำหรับ colormap ที่ร้อนแรงฉันคิดว่าบางทีฉันอาจต้องปรับแปลงความสว่างเชิงเส้นเพื่อป้องกันการเกิดแถบสี แต่มันก็ไม่ได้ผล:

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

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

ฉันจะเปลี่ยนผ่านสีโดยไม่มีแถบได้อย่างราบรื่นได้อย่างไร มีกฎสำหรับการทำให้เส้นโค้งเรียบผ่านพื้นที่สีของ Labหรือบางอย่าง? ( แก้ไข: Ooh ฉันพบตัวอย่างสำหรับสิ่งนี้ : "สเกลสีถูกคำนวณโดยใช้ช่องว่างสีL a b * ซึ่งจะตามไปตามทางลาดสม่ำเสมอตามทิศทาง L * และตามเส้นทางกึ่งวงกลมใน * -b * ระนาบ ")

ปรับปรุง:นี่คือพล็อตของตารางสีนี้ในลูกบาศก์ RGB แสดงให้เห็นมุมที่คมชัด user568458 กำลังพูดถึง:

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


1
ทราบฉันได้แสดงความคิดเห็นเกี่ยวกับวงดนตรีที่รับรู้ (ด้านล่าง) แต่นี่เป็นก่อนที่ฉันจะดูคำถามจริงๆ ฉันเห็นว่าคุณกำลังพูดถึงว่าช่วงสีสองช่วงนั้นโดดเด่นแค่ไหน
horatio

1
แผนภาพที่ดี! นั่นคือสิ่งที่ผมหมายถึงมุมคมผมจินตนาการก้อนสีเช่นนี้หรือเช่นนี้ ฉันได้เพิ่มตัวอย่างที่หยาบ แต่หวังว่าจะเป็นประโยชน์ในสิ่งที่ฉันหมายถึงคำตอบของฉัน (แน่นอนว่ายังมีมุมแหลมคู่ที่สองตรงจุดที่เส้นทางสีแดงเพิ่มสีเขียวเพื่อเข้าถึงสีขาวและตำแหน่งที่เส้นทางสีน้ำเงินเพิ่มสีแดงไปถึงสีขาว)
user56reinstatemonica8

คำตอบ:


6

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

ดูในแง่ของ RGB และสาเหตุของวงดนตรีนั้นค่อนข้างง่าย

คว้าตัวเลือกสีและดูการไล่ระดับสีและคุณจะสังเกตเห็นว่าวงดนตรีอยู่รอบ ๆ จุดที่ธรรมชาติของการไล่ระดับสีเปลี่ยนไป:

  • ในสีแดงมันเปลี่ยนจากการเพิ่ม R ใน RGB เป็น G เพื่อเพิ่ม G ให้เป็นสีเหลือง - ประมาณ # FF0000 ถึง # FF2500
  • ในสีฟ้ามันอยู่รอบ ๆ ซึ่งจะเปลี่ยนจากการเพิ่ม B ใน RGB ไปอย่างราบรื่นเพื่อเพิ่ม G ให้กลายเป็นสีฟ้า - ประมาณ # 0000FF ถึง # 0025FF

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

  • มันคือ # 000000 ถึง # FF0000 (เพิ่มความสว่างในเงื่อนไข HSB, เพิ่มช่องสีแดงใน RGB)
  • จากนั้น # FF0000 ถึง # FFFF00 (เปลี่ยนฮิวในเงื่อนไข HSB เพิ่มแชนเนลสีเขียวใน RGB)
  • จากนั้น # FFFF00 ถึง #FFFFFF (เปลี่ยนความอิ่มตัวในแง่ HSB เพิ่มช่องสีฟ้าใน RGB)

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

ดังนั้นจะมีการเข้าร่วมที่มองเห็นได้เสมอหากเป็นวิธีการตั้งค่า ตามกฎทั่วไปที่ความถูกต้องและเป็นเส้นตรงเป็นจุดประสงค์หลักมันเป็นเรื่องที่ดีที่สุดที่จะทำให้การไล่ระดับสีง่าย ๆ ทำให้เกิดการเปลี่ยนแปลงหนึ่งคุณลักษณะอย่างต่อเนื่อง (เว้นแต่คุณต้องการแถบเช่นในการสแกนสมองบางประเภท)


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

ดังนั้นแทนที่จะ:

  • 000000 ถึง # FF0000, 100% สีดำถึง 100% สีแดง

  • FF0000 ถึง # FFFF00, 100% สีแดงถึง 100% สีเหลือง

  • FFFF00 ถึง #FFFFFF, 100% สีเหลืองถึง 100% สีขาว

... มันอาจจะเป็น (แค่เดาจากส่วนบนของหัวของฉันจะต้องมีการปรับ):

  • 000000 ถึง # E90000 สีดำ 100% ถึงสีแดงสด

  • E90000 ถึง # FF2500, (SHORT BRIDGE) แดงสด (มืด) ถึงแดงสด (ส้มเล็กน้อย)

  • FF2500 ถึง # FFE900 สีแดงสด (สีส้มเล็กน้อย) ถึงสีเหลืองสดใส (สีส้มเล็กน้อย)

  • FFE900 ถึง # FFFF25, (SHORT BRIDGE) สีเหลืองสดใส (สีส้มเล็กน้อย) ถึงสีเหลืองสดใส (แสง)

  • FFFF25 ถึง #FFFFFF สีเหลืองสดใส (แสง) ถึง 100% สีขาว

... จากนั้นปรับเส้นโค้งของแต่ละส่วนตามรสนิยม :-)


แก้ไข:ต่อไปนี้เป็นการสาธิตคำแนะนำ 'ตัดมุม' มันไม่สมบูรณ์แบบ - มันไม่ได้ขัดขืนพอสมควรเพียงบางสิ่งที่ฉันจับตามองในเวลาไม่กี่นาทีโดยใช้เครื่องมือการผสมผสานของ Illustrator (วัตถุที่ไม่ได้ผสมที่ด้านล่างเพื่อแสดงจุดสี) แต่ละส่วนของการไล่ระดับสีระหว่างจุดสีแต่ละเส้นเป็นเส้นตรง 100% ในขณะที่คุณอาจต้องการบางสิ่งบางอย่างที่โค้งมนมากขึ้น - และถ้าคุณดูอย่างระมัดระวังคุณสามารถมองเห็นแถบ

ผลลัพธ์ตามธรรมชาติต่างกันไประหว่างจอภาพ: บนจอภาพ 'ดี' ของฉันมันราบรื่น บนหน้าจอ 'ไม่ดี' ที่ฉันใช้สำหรับตรวจสอบความยืดหยุ่นของภาพบนเว็บ (ที่วงดนตรีดั้งเดิมไม่แสดงอย่างชัดเจน) ส้มปรากฏขึ้นเงียบ ๆ เสมอทำให้ Ares สีแดงและสีเหลืองดูสว่างกว่าสีส้มที่เข้าร่วมโดยเน้นสีแดงมากเกินไป และพื้นที่สีเหลือง - แต่คุณยังคงเห็นว่า 'ขอบ' ของแถบดั้งเดิมหายไปอย่างมาก

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

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

ข้อดีอีกอย่างคือคุณมีอิสระที่จะใช้การเปลี่ยนสีดำที่ชัดเจนขึ้น> มากกว่าหนึ่งช่อง


หรือความคิดเดียวกันกับลูกบาศก์สี RGB (ให้อภัยความไม่เหมาะสมมันมีจุดประสงค์เพื่อสาธิตที่ไม่ถูกต้อง ... ):

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

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


tldr ดังนั้น หลีกเลี่ยงค่า 255 สำหรับช่อง R, G, B (?)
horatio

2
@ Horatio ไม่จริง ๆ ไม่เหมือน tldr; หลีกเลี่ยงมุมที่แหลมระหว่างส่วนต่าง ๆ ของการไล่ระดับสี
user56reinstatemonica8

ทุกอย่างขึ้นอยู่กับพื้นที่สีที่ใช้สำหรับการส่งออก - คุณจะเห็นแถบสีเดียวกันในการออกแบบการพิมพ์หากคุณมีการไล่ระดับสีที่ไปจากสีขาวบริสุทธิ์ไปจนถึงสีม่วงแดงบริสุทธิ์ถึงสีม่วงบริสุทธิ์ (100% สีม่วงแดงและสีฟ้า) ทำจาก 100% C, m, k)
user56reinstatemonica8

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

1
นี่คือความพยายามในการใช้เส้นโค้ง bezier แทน: flic.kr/p/e1bcFf flic.kr/p/e15wik
endolith

1

บางทีนี่อาจช่วยคุณได้มันใช้ได้ผลสำหรับฉัน แต่ฉันไม่รู้วิธีที่จะทำให้สำเร็จ

http://nomorebanding.com/


นั่นไม่ได้เป็นแถบเดียวกันและไม่สามารถเกิดขึ้นได้ในบริบทนี้ ฉันเดาว่าฉันกำลังพูดถึงแถบรับรู้ในสิ่งที่ควรเป็นการไล่ระดับสีที่ราบรื่นในขณะที่การเชื่อมโยงของคุณเกี่ยวกับแถบคาดเนื่องจากปริมาณสี
endolith

1
วงดนตรีที่รับรู้เป็นจาก quantization สี มันเป็นปัญหากับการนำเสนอ 8 บิตต่อพิกเซล ฉันไม่รู้อะไรเลยเกี่ยวกับปลั๊กอิน แต่การใช้ 16bpp RGB เมื่อสร้างการไล่ระดับสีและจากนั้นการสุ่มตัวอย่างเป็น 8bpp จะให้ผลลัพธ์ที่ดีกว่าโดยมีแถบน้อยกว่าการสร้างใน 8bpp
horatio

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