Это связано с вопросом, который я задал на tex.stackexchange , который имеет цветовой аспект. Результатом этого вопроса является следующее изображение:
Я нарисовал серию серых квадратов слева, с красной веткой, уходящей справа. Цель состоит в том, чтобы иметь разные красные квадраты с разной насыщенностью, но все с одинаковым значением серого. В цветовой модели hsv все они одинаковы v
, но когда я конвертирую изображение в оттенки серого с помощью Gimp, они не преобразуются в один и тот же серый. Также визуальное впечатление состоит в том, что красные квадраты справа темнее, чем слева.
Как я могу, с учетом определенного серого, рассчитать цвета с определенным оттенком и таким же значением серого (или, что еще лучше, с тем же серым оттиском )? Все цвета, используемые в изображении, рассчитаны, поэтому я предпочитаю решения, которые также включают вычисления.
Я мог бы использовать здесь неправильные термины - я инженер-механик, поэтому, пожалуйста, исправьте меня, где необходимо, или попросите разъяснений.
Предложение использовать цветовое пространство Lab привело меня к некоторым выводам:
Я могу использовать значение модели Lab,
L
чтобы установить какое-то значение серого для разных цветов. В модели 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). Результат:
Спасибо!
источник
Ответы:
Вы можете использовать цветовое пространство Lab, чтобы найти свои совпадения. Цвета с тем же значением L, что и у целевого серого, будут выглядеть почти одинаково при преобразовании в оттенки серого.
Например, серый Lab (50, 0, 0) будет очень похож на красные Lab (50, 30, 0), (50, 50, 30) и (50, 50, 50) при преобразовании в оттенки серого. Примеры ниже используют Photoshop (Изображение> Режим> Оттенки серого) для преобразования из Lab в серый:
источник
Итак, вышеприведенный совет Ника работает только на 50% яркости. Если вы примените любое другое значение L, одинаковое к разным цветам, серый цвет будет другим.
Для этого должна быть математика, но вы можете сделать это на экране на глаз.
Если вы создадите все цвета, которые хотите, а затем наложите серый элемент (иллюстратор) или слой (фотошоп) с его режимом прозрачности на «цвет» (или насыщенность или оттенок), то все элементы ниже отобразят его яркость.
Вы должны убедиться, что все цвета ниже этого серого элемента имеют насыщенность 100, иначе вы получите серые, а не красивые цвета.
Теперь проблема в том, что при всех вышеперечисленных методах вы сделаете все элементы «одинаковой яркости внутри используемого профиля RGB», то есть одинакового серого для выбранного «устройства», и наихудшая часть: глаз - это устройство и есть различия.
Вы можете показывать одни и те же цвета разным людям, и они не найдут такую же «ровность», как другие.
Добавьте это к тому факту, что вы устанавливаете эти цвета как «одинаковую яркость» в выбранном устройстве, и они не только «оценены», как только вы показываете это на другом устройстве, эффект не срабатывает, потому что каждое устройство имеет свою собственную способность подсвечивать красные, зеленые или синие элементы с различной интенсивностью, так что вы можете получить, например, красные элементы.
Кроме того, если вы сделаете смешение от серого до цвета, как предложено выше, вы должны убедиться, что серый элемент имеет минимум не менее 1/255 в каждом канале (т.е. не более серый), или программное обеспечение будет считать исходный серый как 0 оттенков, которые дадут вам красные оттенки красного цвета (потому что смесь между 0 оттенками и любым другим цветом будет на полпути к красному)
Я специалист по допечатной подготовке с 90-х годов, и мой совет: если вы собираетесь заниматься математикой, вы должны использовать математику для глаз (визуальные возможности), а также для устройства, которое вы будете показывать эти цифры на.
Удачи.
источник