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