Некорректные цвета CIELAB при крайних L

Статус
Закрыто для дальнейших ответов.

ENVdovin

Участник
Топикстартер
Сообщения
45
Реакции
0
TRANTOR, А что, я не прав касательно двух условий? Они не выполняются?

Ну вы вряд ли изобретете колориметрически верный алгоритм взамен матричным уравнениям CIE RGB->XYZ и степенным преобразованиям XYZ->Lab.
Так я и не собираюсь что-то другое изобретать. Просто некая пост обработка будет.

Вы же просто уперлись в гамут-маппинг с этим странным примером с L=0 и насыщенными цветовыми каналами при этом.
Вообще-то, это не я, а Вы этот пример привели. Я приводил пример с L=1,a<>0,b<>0. Но это не странный пример. Этот клиппинг/маппинг (уже начинает вызывать улыбку) происходит в подавляющем большинстве случаев редактирования кривых в режиме LAB. Я, конечно, не говорю о крайних ситуациях, коей является этот пример L=1,a<>0,b<>0, но он хорошо показывает суть. Неужели я плохо объясняю?

Задали в фотошопе несуществующий цвет из некорректных цифр за охватом HVS и хотите чтобы он корректно пересчитался в RGB?
Совсем не хочу, т.к. "корректно" он пересчитаться не может. Я лишь хочу, чтобы результирующая L равнялась L заданной мной.

Клиппинг отрицательного значения в цветовом канале до нуля приводит к тому, что светлота начинает отличаться от нуля.
О чем я и говорю.

Можно усложнить - будет маппинг, не просто приведем отрицательные к нулю но и по какому-то алгоритму двинем еще и два других канала.
Можно еще усложнить и двинуть их так, чтобы результирующая L оказалась равной исходной L, что, собственно, мне и надо.

Третий вариант, который мне по душе в моих инструментах - сделать клиппинг или маппинг но при этом еще и предупредить об этом.
Да, это хорошая практика, и фотошоп это всегда делает в окне выбора цвета.
 

mihas

15 лет на форуме
Сообщения
4 860
Реакции
2 872
Вообще-то, это не я, а Вы этот пример привели. Я приводил пример с L=1,a<>0,b<>0.
"Если в Photoshop у изображения выставить L в минимум (например, залить канал L черным цветом), часть цветов изображения останется - это в основном красные и синие оттенки. Хотя ожидается увидеть полностью черное изображение". Это ваш первый пост.
Можно еще усложнить и двинуть их так, чтобы результирующая L оказалась равной исходной L, что, собственно, мне и надо.
Ну если изобретете интересный алгоритм гамут-маппинга - расскажите!
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 188
Реакции
10 844
Думаю, все вопросы снимутся, если показать вам на пальцах, что оба условия таки, не выполняются никогда. Берем три точки на одной прямой в пространстве Lab:
(20,20,20) (40,40,40) (60,60,60)
В пространстве RGB это будет:
(79,35,20) (159,62,30) (248,89,39)
Легко видеть, что даже они на одной прямой не лежат.
 

ENVdovin

Участник
Топикстартер
Сообщения
45
Реакции
0
Думаю, все вопросы снимутся, если показать вам на пальцах, что оба условия таки, не выполняются никогда. Берем три точки на одной прямой в пространстве Lab:
(20,20,20) (40,40,40) (60,60,60)
В пространстве RGB это будет:
(79,35,20) (159,62,30) (248,89,39)
Легко видеть, что даже они на одной прямой не лежат.
Ваш пример неуместен, я писал, что ось L является прямой в пространстве RGB. Точки, которые Вы привели не лежат на оси L. Более того, они даже лежат не на параллельной ей прямой. Читайте внимательнее то, о чем я написал.


Lab пространство нелинейное. Оно с RGB/XYZ прямо не сопрягается.
Да, в основном оно нелинейное. Выполняются только два приведенных мной условия. Все остальные плоскости пространства LAB не будут плоскими в пространстве RGB.

Я, пожалуй, проиллюстрирую это, а то, что-то мне никто не верит.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 188
Реакции
10 844
Ваш пример неуместен, я писал, что ось L является прямой в пространстве RGB. Точки, которые Вы привели не лежат на оси L. Более того, они даже лежат не на параллельной ей прямой. Читайте внимательнее то, о чем я написал.
Я не пойму, вы действительно этого не понимаете или просто меня троллите?
Lab: (30,30,20) (40,30,20) (50,30,20) - лежат на прямой параллельной L
RGB: (116,49,41) (144,73,63) (172,98,87)

Да, в основном оно нелинейное.
"В основном безвредна" '))' В математике нет такого опредления "в основном" Преобразование или линейно или нелинейно. Вы хотите сказать "линейно по L" - нет нелинейно.
 

ENVdovin

Участник
Топикстартер
Сообщения
45
Реакции
0
Я не пойму, вы действительно этого не понимаете или просто меня троллите?
Lab: (30,30,20) (40,30,20) (50,30,20) - лежат на прямой параллельной L
RGB: (116,49,41) (144,73,63) (172,98,87)

Вы снова не поняли меня. Прямая, параллельная оси L, и ось L - это две разные прямые! Что непонятного? Я говорил о прямой (L,0,0).

Пространство LAB в системе координат RGB не настолько кривое или нелинейное, насколько Вы, вероятно, себе представляете. Похоже, что Вы видите его неким «желеобразным» искривлением, но его искривление не настолько комплексное.

Например, все три оси L, A и B остаются прямыми в пространстве RGB. Они перестают быть взаимно перпендикулярными, но это совсем другой вопрос. Любая прямая, параллельная оси L в пространстве LAB, но имеющая ненулевые координаты A и B перестает быть прямой в пространстве RGB. Любая плоскость AB остается плоской в пространстве RGB. Она перестает быть перпендикулярной оси L, и ее дискретная сетка перестает быть равномерной, но это, опять же, другие вопросы – форма этой плоскости остается плоской.

Вы, хотя бы, проверяли то, с чем Вы не согласны? Я, перед тем, как писать, проверил это путем моделирования в 3D.

Возвращаясь к затронутой теме, сделаю еще одно уточнение. Поскольку дискретная сетка плоскости AB, являясь равномерной в пространстве LAB, перестает быть равномерной в пространстве RGB, то без учета этого алгоритм маппинга не будет сохранять неизменный Hue. Чтобы вместе с Lightness сохранить неизменным еще и Hue, надо учитывать эту неравномерность. В итоге, мы получим алгоритм маппинга, сохраняющий неизменными Lightness и Hue, и жертвующий Chroma.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 188
Реакции
10 844
Например, все три оси L, A и B остаются прямыми в пространстве RGB.
Ага, щаз!
Lab: (0,50,0) (0,60,0) (0,70,0)
RGB: (57,0,3) (64,0,4) (72,0,5) - вдобавок вся ось лежит вне гамута, поэтому, вообще не пойму, какой толк в том, даже если б она и оставалась прямой?

Любая прямая, параллельная оси L в пространстве LAB, но имеющая ненулевые координаты A и B перестает быть прямой в пространстве RGB.

Любая плоскость AB остается плоской в пространстве RGB.
С точки зрения математики это практически взаимоисключающие утверждения, даже проверять лень. Да и, опять же, даже если это и внезапно правильно (хотя на самом деле, это, конечно, чушь, подумайте почему, задачка из школьного курса стереометрии), вам то что с того? Ведь прямые, параллельные L при преобразовании в RGB перестают быть прямыми.
 

ENVdovin

Участник
Топикстартер
Сообщения
45
Реакции
0
Ага, щаз!
Lab: (0,50,0) (0,60,0) (0,70,0)
RGB: (57,0,3) (64,0,4) (72,0,5) - вдобавок вся ось лежит вне гамута, поэтому, вообще не пойму, какой толк в том, даже если б она и оставалась прямой?
Вообще-то, правильные значения RGB: (56.8451,-29.6144,3.0784) (64.3682,-34.2470,3.9219) (72.0388,-38.9703,4.9067), и они-таки лежат на одной прямой. Вы, если проверяете, то делайте это правильно, а не фотошопом, который делает клиппинг. Сами же написали, что точки лежат вне гамута, стало быть, фотошоп сделал клиппинг.
С точки зрения математики это практически взаимоисключающие утверждения, даже проверять лень. Да и, опять же, даже если это и внезапно правильно (хотя на самом деле, это, конечно, чушь, подумайте почему, задачка из школьного курса стереометрии), вам то что с того? Ведь прямые, параллельные L при преобразовании в RGB перестают быть прямыми.
Интересно, какому же постулату математики это противоречит?
 

ENVdovin

Участник
Топикстартер
Сообщения
45
Реакции
0
И кстати, для mihas. Суда по примеру выше, фотошоп не делает маппинг, а делает клиппинг, т.е. трогает только тот канал, который вышел за пределы.
 
Последнее редактирование модератором:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 188
Реакции
10 844
Вы, если проверяете, то делайте это правильно
Сказать по правде, не пойму, откуда вы сами-то взяли эту безумную дичь про плоскости?
RGB: (30,20,20) (30,30,20) (30,30,30) (30,20,20) (30,30,40) (30,40,40) (30,40,30) - Все в одной плоскости или я снова чего то не догоняю?
Lab: (105,58,41) (116,49,41) (118,48,25) (106,57,24) (107,57,1) (119,48,3) (130,36,6) (129,36,26) - специально обращаю внимание на то, что ни одна точка не клипится
Получам такой красивый кораблик:
1.jpg
 

ENVdovin

Участник
Топикстартер
Сообщения
45
Реакции
0
В третий раз говорю откуда - визуализировал кривизну пространства LAB в системе координат RGB.
А это у Вас что за дичь?'))'
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 188
Реакции
10 844

ENVdovin

Участник
Топикстартер
Сообщения
45
Реакции
0
Да, немного не догоняете.
Вы моделируете кривизну RGB в системе координат LAB. Я же говорил об обратном.
 

ENVdovin

Участник
Топикстартер
Сообщения
45
Реакции
0
Короче. Берёте любые четыре точки, находящиеся в пространстве LAB на одной плоскости AB (обращаю внимание - именно на AB). Перегоняете в RGB (не фотошопом). И проверяете, что они все лежат на одной плоскости.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 188
Реакции
10 844
Вы, как я погляжу, ни сами по-нормальному объяснить не можете, ни чужих объяснений не понимаете. Я именно и сделал как вы сказали: взял, даже не четыре, а целых восемь точек в одной плоскости (перпендикулярной L) пространства Lab и перевел их в RGB. Вы мне говорили, что там тоже должна получиться плоскость. Где она?
ЗЫ.А, извиняюсь, понял ваше недоумение. В моем сообщении c графиком следует поменять местами слова "Lab" и "RGB"
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 188
Реакции
10 844
А чего там демонстрировать? Я ж говорю - вся идея основывается на абсолютно ложных предположениях, которые проистекают от недостатка теоретических знаний.
По правде говоря, я даже представить себе не могу, как подобныя мысль могла в голову прийти - насквозь нелинейное преобразование ВНЕЗАПНО параллельные плоскости переводит в параллельные плоскости. При том, что перпендикулярные им прямые изгибаются причудливым образом. '))'
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
вот пусть и демонстрирует, Миш.

смысла ему долбить про нелинейность уже нет.
он не понимает.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 188
Реакции
10 844
Ну, почему же, я всегда говорил - надо проявлять терпение и смирение, аки сестра милосердия. '))' Понял же он, хоть и спустя месяц, то что мы ему в начале топика говорили, глядишь, через месяц и нелинейность отображений душой примет и прочувствует. '))'
 
Статус
Закрыто для дальнейших ответов.