Як уникнути смуг чіткого кольору в градієнтах?


13

Тож це більше наукова візуалізація, ніж графічний дизайн, але я думаю, що теорія та ж. У кольорових картах, які використовуються для візуалізації даних, часто є смуги кольорів, які стирчать, коли вони не повинні. Я вважаю, що вони є формою груп Маха ?

Наприклад, я використав цю біполярну кольорову карту, і вона створює такі зображення:

введіть тут опис зображення

Це майже як кільце неонового помаранчевого кольору близько 0,2, і подібне для синього навколо -0,2. Ось сюжет RGB-компонентів та розрахунок відносної яскравості в чорному кольорі:

введіть тут опис зображення

Я вручну налаштовував це, щоб спробувати позбутися від груп, і дещо досягнув успіху, але я не дуже розумію теорію за цим:

введіть тут опис зображення

введіть тут опис зображення

Краще, але я все одно бачу групи в ньому.

Для іншого прикладу, для гарячої кольорової карти я подумав, що, можливо, мені доведеться лінеалізувати графік яскравості, щоб запобігти появі смуг, але це насправді не вийшло:

введіть тут опис зображення введіть тут опис зображення

Жовта та оранжева смуги все ще є, вони просто переміщені та трохи змазані. Тож розриви у ділянці яскравості не є причиною проблеми.

Як плавно переходити через кольори без обв'язки? Чи є правила для отримання плавних кривих через кольоровий простір лабораторії чи щось таке? ( Редагувати: Ой, я знайшов приклад для цього : "Колір шкали обчислюється за допомогою кольорового простору L a b *. Він слідує рівномірною рампою в напрямку L *, і йде півкружним шляхом у напрямку * -b * літак. ")

Оновлення: Ось сюжет цієї кольорової карти в кубі RGB, на якому показані гострі кути, якими користувач568458 говорить:

введіть тут опис зображення


1
Зауважте, я зробив коментар щодо перцептивних смуг (нижче), але це було до того, як я дійсно подивився на питання. Я бачу, що ви говорите про те, як виділяються два конкретні колірні діапазони.
horatio

1
Гарна схема! Це саме те, що я маю на увазі під гострими кутами, я уявляв такий кольоровий куб, як цей чи подібний . Я додав у свою відповідь грубу, але сподіваюсь корисну ілюстрацію того, що я маю на увазі. (звичайно, є також друга пара гострих кутів у місцях, де червона доріжка додає зелений, щоб досягти білого, а де синій шлях додає червоний, щоб досягти білого)
user56reinstatemonica8

Відповіді:


6

Не забувайте, що навіть якщо ви працюєте зі значеннями кольорів LAB, для відображення їх на екрані потрібно виводити значення RGB. У якийсь момент він повинен сказати червоним, зеленим та синім пікселям екрана, що робити.

Подивіться на це з точки зору RGB, і причина угруповань насправді досить проста.

Візьміть підбірник кольору і подивіться на градієнти, і ви помітите, що смуги знаходяться навколо точок, де змінюється характер градієнта:

  • У червоному кольорі - це те, де перетворюється від плавного збільшення R в RGB до додавання G до жовтого - навколо # FF0000 до # FF2500
  • У синьому кольорі - це те, де перетворюється від плавного збільшення B в RGB до додавання G, щоб стати блакитним - навколо # 0000FF до # 0025FF

Так само і з нижніми ділянками, додаючи жовтий до білого: вони, по суті, три градієнти, з'єднані разом. Використовуючи червоний градієнт як приклад:

  • це від 000000 до # FF0000 (збільшення яскравості в термінах HSB, збільшення червоного каналу в RGB)
  • потім від # FF0000 до # FFFF00 (зміна відтінку в умовах HSB, збільшення зеленого каналу в RGB)
  • потім від # FFFF00 до #FFFFFF (зміна насичення в термінах HSB, збільшення синього каналу в RGB)

введіть тут опис зображення

Тож завжди буде видиме з'єднання, якщо так налаштовано. Як правило, там, де точність та лінійність є основною метою, найкраще зберігати градієнт просто, змінюючи одну особливість постійно (якщо ви не хочете обв'язувати, наприклад, при деяких видах сканування мозку).


Це означає, що якщо ви вирішили пропустити ширший спектр (це виглядає добре), я б задумався або почати додавати другий канал до того, як перший завершиться, утворюючи перемикаючий ділянку між градієнтами, або маючи невелика зворотна крива S форми до швидкості, з якою додається другий канал (ймовірно, обидва).

Тож замість:

  • 000000 до # FF0000, від 100% до чорного до 100% червоного

  • FF0000 до # FFFF00, від 100% червоного до 100% жовтого

  • FFFF00 до #FFFFFF, від 100% жовтого до 100% білого

... це може бути (просто здогадуючись, я потребую коригування):

  • 000000 до # E90000, 100% від чорного до яскраво-червоного

  • E90000 до # FF2500, (КОРОТКИЙ МОСТ) яскраво-червоний (темний) до яскраво-червоний (злегка помаранчевий)

  • FF2500 до # FFE900, яскраво-червоний (злегка помаранчевий) до яскраво-жовтий (злегка помаранчевий)

  • FFE900 до # FFFF25, (КОРОТКИЙ МОСТ) яскраво-жовтий (злегка помаранчевий) до яскраво-жовтий (світлий)

  • FFFF25 до #FFFFFF, яскраво-жовтий (світлий) до 100% білий

... потім відрегулюйте криві кожного розділу за смаком :-)


Редагувати: Ось демонстрація пропозиції "вирізати кути". Це не ідеально - це досить нерафіновано, просто щось, що я зібрав за око за кілька хвилин, використовуючи інструмент суміші Illustrator (необмежені об'єкти внизу, щоб показати кольорові точки). Кожен сегмент градієнта між кожною точкою кольорів на 100% лінійний, тоді як ви, мабуть, хочете щось більш округлене - і як результат, якщо уважно подивитися, ви можете помітити смуги.

Результати, природно, різняться між моніторами: на моєму «хорошому» моніторі воно гладко; на 'поганому' моніторі, який я використовую для перевірки стійкості веб-зображень (де оригінальні смуги показуються не дуже чітко), апельсини завжди виглядають приглушеними, завдяки чому червоні та жовті поля здаються яскравішими, ніж приєднання помаранчевого, надмірно підкреслюючи червоне і жовті ділянки - але ви все ще можете побачити, що "край" оригінальних груп значною мірою пішов.

Так чи інакше, порівняно з початковими градієнтами ви чітко бачите різницю. (що стосується математики, що стоїть за цим - поняття не маю, я не математик, але, сподіваюся, це допомагає визначити проблему та рішення)

введіть тут опис зображення

Інша перевага полягає в тому, що ви можете використовувати чіткіший чорний> на один канал перехід більше.


Або та сама ідея на кольоровому кубі RGB (пробачте про грубість, він повинен бути демонстративно не точним ...):

введіть тут опис зображення

Це, мабуть, більш чітко показує, що я мав на увазі, коли я сказав, що приклад градієнта можна вдосконалити, зробивши переходи від основних сегментів до відрізних кутових сегментів гладкими, а не кутовими.


так tldr; уникайте значень 255 для R, G, B каналів (?)
horatio

2
@horatio насправді ні, більше схожий на tldr; уникайте гострих кутів між ділянками градієнта
user56reinstatemonica8

Все залежить від кольорового простору, який використовується для виведення - ви побачили б ті ж смуги в дизайні друку, якби у вас був градієнт, який переходив, наприклад, від чисто білого до чистої пурпурової до чистої фіолетової (100% пурпуровий і блакитний) до чистого чорного ( зроблено з 100% С, м, к)
користувач56reinstatemonica8

Більше схоже на "уникати гострих кутів під час руху по простору HSB"? Але якщо я спробую зробити кубічну інтерполяцію чи щось подібне, я в кінцевому підсумку виходжу за межі простору HSB, який потім вирізає значення і все одно спричиняє погані речі. У моєму другому прикладі я роблю те, що ви рекомендуєте щодо додавання мостових секцій, але це не працює ідеально. Він все ще виглядає як пляма жовтого всередині плями червонувато-оранжевого кольору з ореолом навколо нього, а не плавно змінюється зміна кольору.
ендоліт

1
Ось спроба з допомогою кривої Безьє замість: flic.kr/p/e1bcFf flic.kr/p/e15wik
ендоліти

1

Можливо, це могло б вам допомогти, це працює для мене, але я не знаю ручного способу його виконання.

http://nomorebanding.com/


Це не той самий вид перев'язування, і в будь-якому контексті забарвлення в цьому контексті неможливе. Я думаю, я більше говорю про перцептивні смуги в тому, що має бути плавним градієнтом, тоді як ваше посилання стосується смуг через квантування кольорів?
ендоліт

1
сприйняття смуг - від квантування кольорів. Це проблема з 8-бітовим поданням на піксель. Я нічого не знаю про плагін, але використання 16bpp RGB при створенні градієнтів, а потім зменшення вибірки до 8bpp дасть набагато кращі результати з набагато меншою смугою, ніж їх побудова в 8bpp.
horatio

@horatio: Ні, смуги розташовані від кривої, приймаючи гострі кути, коли вона рухається по перцептивному кольоровому простору. Зокрема, у моєму прикладі саме кольоровість досягає піку в цих кутах.
ендоліт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.