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

  • Автор темы Автор темы ENVdovin
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
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, что, собственно, мне и надо.

Третий вариант, который мне по душе в моих инструментах - сделать клиппинг или маппинг но при этом еще и предупредить об этом.
Да, это хорошая практика, и фотошоп это всегда делает в окне выбора цвета.
 
Вообще-то, это не я, а Вы этот пример привели. Я приводил пример с L=1,a<>0,b<>0.
"Если в Photoshop у изображения выставить L в минимум (например, залить канал L черным цветом), часть цветов изображения останется - это в основном красные и синие оттенки. Хотя ожидается увидеть полностью черное изображение". Это ваш первый пост.
Можно еще усложнить и двинуть их так, чтобы результирующая L оказалась равной исходной L, что, собственно, мне и надо.
Ну если изобретете интересный алгоритм гамут-маппинга - расскажите!
 
Думаю, все вопросы снимутся, если показать вам на пальцах, что оба условия таки, не выполняются никогда. Берем три точки на одной прямой в пространстве Lab:
(20,20,20) (40,40,40) (60,60,60)
В пространстве RGB это будет:
(79,35,20) (159,62,30) (248,89,39)
Легко видеть, что даже они на одной прямой не лежат.
 
Думаю, все вопросы снимутся, если показать вам на пальцах, что оба условия таки, не выполняются никогда. Берем три точки на одной прямой в пространстве 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.

Я, пожалуй, проиллюстрирую это, а то, что-то мне никто не верит.
 
Ваш пример неуместен, я писал, что ось 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" - нет нелинейно.
 
Я не пойму, вы действительно этого не понимаете или просто меня троллите?
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.
 
Например, все три оси 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 перестают быть прямыми.
 
Ага, щаз!
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 перестают быть прямыми.
Интересно, какому же постулату математики это противоречит?
 
И кстати, для mihas. Суда по примеру выше, фотошоп не делает маппинг, а делает клиппинг, т.е. трогает только тот канал, который вышел за пределы.
 
Последнее редактирование модератором:
Вы, если проверяете, то делайте это правильно
Сказать по правде, не пойму, откуда вы сами-то взяли эту безумную дичь про плоскости?
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
 
В третий раз говорю откуда - визуализировал кривизну пространства LAB в системе координат RGB.
А это у Вас что за дичь?'))'
 
Да, немного не догоняете.
Вы моделируете кривизну RGB в системе координат LAB. Я же говорил об обратном.
 
Короче. Берёте любые четыре точки, находящиеся в пространстве LAB на одной плоскости AB (обращаю внимание - именно на AB). Перегоняете в RGB (не фотошопом). И проверяете, что они все лежат на одной плоскости.
 
Вы, как я погляжу, ни сами по-нормальному объяснить не можете, ни чужих объяснений не понимаете. Я именно и сделал как вы сказали: взял, даже не четыре, а целых восемь точек в одной плоскости (перпендикулярной L) пространства Lab и перевел их в RGB. Вы мне говорили, что там тоже должна получиться плоскость. Где она?
ЗЫ.А, извиняюсь, понял ваше недоумение. В моем сообщении c графиком следует поменять местами слова "Lab" и "RGB"
 
А чего там демонстрировать? Я ж говорю - вся идея основывается на абсолютно ложных предположениях, которые проистекают от недостатка теоретических знаний.
По правде говоря, я даже представить себе не могу, как подобныя мысль могла в голову прийти - насквозь нелинейное преобразование ВНЕЗАПНО параллельные плоскости переводит в параллельные плоскости. При том, что перпендикулярные им прямые изгибаются причудливым образом. '))'
 
вот пусть и демонстрирует, Миш.

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