Статистическое исследование цветоразличительных возможностей

  • Автор темы Автор темы mihas
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Ответ: Статистическое исследование цветоразличительных возможностей

Если крутить ползунок фона, то результат "в два раза лучше": 14..15 из 18.
Если не крутить - то 10..12.
chroma_test.png
 
Ответ: Статистическое исследование цветоразличительных возможностей

маководы пишут что не могут разницу увидеть.
Ну, я - маковод ;)
Screen Shot 2013-04-09 at 1.09.07 PM.png

и должен сказать, что тест нуждается в доработках, например вот этот патч:
Screen Shot 2013-04-09 at 1.30.17 PM.png

имеет различия по всем трем характеристикам. Причем практически одинаковую. Понятно, что это неизбежно в рамках веб-показа sRGB - но дайте тогда возможность выбрать несколько отличий одновременно, потому, что пока приходится тупо угадывать, что вы имели в виду в таких ситуациях.
И было бы отлично увидеть свое место на графиках со статистикой ;)
 
Ответ: Статистическое исследование цветоразличительных возможностей

и должен сказать, что тест нуждается в доработках, например вот этот патч:
имеет различия по всем трем характеристикам. Причем практически одинаковую.
Понятно, что это неизбежно в рамках веб-показа sRGB - но дайте тогда возможность выбрать несколько отличий одновременно, потому, что пока приходится тупо угадывать, что вы имели в виду в таких ситуациях.
И было бы отлично увидеть свое место на графиках со статистикой ;)
Спасибо за замечания! Про свое место на графиках можно подумать хотя изначальная идея - сбор анонимной статистики а не персонификация. По поводу отличий по всем трем характеристикам - в вашем скриншоте таких отличий нет - там только отличие по цветовому тону hue на 4.5 градуса (80 оттенков). Скрипт не генерит картинок сразу по трем отличиям, в том весь смысл. Каждый может сам это проверить поскольку в ваш скриншот честно внедрен цветовой профиль вашего некалиброванного монитора и проверить не проблема. Конвертим ваш скриншот из вашего монитора в sRGB чтобы работать с цифрами RGB не абы чего а оригинальных изображений (в идеале лучше их скачать а не конвертировать скриншот в sRGB из профиля монитора - погрешность накапливается), затем переходим в 16-бит режим и уменьшаем голубой прямоугольник в фотошопе до размера 2х1 пикселов (я уменьшал половинки прямоугольника по одной и потом слепил 1+1 пиксел в один файл 2х1 пикселов. Поскольку тестовые изображения 11-битные (2560 оттенков, стохастически перемешанных соседних пикселов по цвету) то переход в 16 бит обязателен. Открываем полученный тиф 16 бит в колорлабе! К сожалению колорлаб экспортирует все в 8 бит, тем не менее учитывая эту погрешность все равно видно, что квадраты одинаковые по хроматичности и светлоте и отличаются лишь по тону. В колорлабе создаем из нашего тифа тесткарту для спектроскана и сохраняем как текстовой файл, открываем, проверяем, вот его содержимое:
Код:
LGOROWLENGTH	1
CREATED	"4/11/2013"  # Time: 19:34
KEYWORD	"SampleID"
KEYWORD	"SAMPLE_NAME"
NUMBER_OF_FIELDS	5
BEGIN_DATA_FORMAT
SampleID	SAMPLE_NAME	RGB_R	RGB_G	RGB_B
END_DATA_FORMAT
NUMBER_OF_SETS	2
BEGIN_DATA
1	A1	169.42	194.32	216.98
2	B1	169.16	194.44	222.04
END_DATA
Идем например в калькулятор Линдблума http://www.brucelindbloom.com/iPhone/ColorConv.html и переводим наши цифры sRGB D65 в LCHab D65 (не забываем про D65! чтобы не получить лишней погрешности при хроматической адаптации к другому белому). Получаем с учетом 8-битной погрешности светлоту 77,5 у обоих патчей, hue 256 и 261 и небольшую разницу по хроме. Если бы колорлаб умел выдавать тесткарты в 16-бит - погрешности в хроматике не было бы, два голубых патча отличаются только по тону hue на 4,5 градуса.
Если кто знает как считать в фотошопе или иной программе точное значение пиксела в 16 битном виде - поделитесь, кстати!

Если захотите вслед за мной проверить корректность цветовых патчей на предмет их отличий только в одной из трех координат LCh - не забывайте, что лаб и sRGB у меня все с опорным белым светом D65 и что скриншот с внедренным профилем вашего монитора надо переконвертировать в sRGB прежде чем сравнивать числа RGB-Lch. Два браузера за которые я ручаюсь по точности цветопередачи и правильности применения колорменедждмента - Firefox и Chrome со включенным управлением цветом (как включить описано здесь http://rudtp.pp.ru/forum/viewtopic.php?f=3&t=326 ), с остальными может быть небольшая погрешность в зависимости от профиля монитора. Скорее всего погрешность по хроматике вашего скриншота внес не только 8-бит колорлаба но и профиль некалиброванного монитора в сочетании с браузером с неправильным управлением цветом типа Сафари. Но гадать не будем - каждый может сделать скриншот в нормальном браузере, уменьшить половинки изображения до 1 пиксела в формате sRGB 16-бит, втащить их в колорлаб и потом пересчитать полученные цифры RGB в LCH D65. А еще лучше - скачать левое и правое изображение - будет точнее чем скриншот. Я именно так и делал когда проверял верность работы алгоритма. Он отклоняет в патчах только по отдельности светлоту, хроматику и тон. Чтобы максимально уменьшить 8-битную погрешность изображения в тесте 11-битные. Да левая картинка на 6 пикселов шире правой - это зона размытия между левой и правой частями, можете 6 пикселов у левой картинки отсечь для пущей точности проверочных вычислений.

P.S. А скриншот с браузера без колорменеджмента кстати.
 
Ответ: Статистическое исследование цветоразличительных возможностей

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

По поводу отличий по всем трем характеристикам - в вашем скриншоте таких отличий нет - там только отличие по цветовому тону hue на 4.5 градуса (80 оттенков).
Не-а ;) я сначала померял, а потом выложил. завтра могу конкретные цифры указать.
Скрипт не генерит картинок сразу по трем отличиям, в том весь смысл.
К сожалению это возможно только в теории. На практике при генерации в _целочисленном_ LCH и последующей конверсии в _целочисленный_ sRGB (тем более с низкой разрядностью) так красиво не будет. А при отображении с учетом профиля монитора - вообще трудно предсказать, что увидит конкретный пользователь.
Каждый может сам это проверить поскольку в ваш скриншот честно внедрен цветовой профиль вашего некалиброванного монитора
Вас ввело в заблуждение название профиля. На самом деле монитор откалиброван с помощью eye-one pro и i1Profiler'a с конечной средней dE меньше 0,75
Конвертим ваш скриншот из вашего монитора в sRGB чтобы работать с цифрами RGB не абы чего а оригинальных изображений (в идеале лучше их скачать а не конвертировать скриншот в sRGB из профиля монитора - погрешность накапливается), затем переходим в 16-бит режим и уменьшаем голубой прямоугольник в фотошопе до размера 2х1 пикселов (я уменьшал половинки прямоугольника по одной и потом слепил 1+1 пиксел в один файл 2х1 пикселов.
Зачем такие сложности? у вас в цепочке 4 нелинейных преобразования и интерполяция с не вполне понятным алгоритмом и чудовищным коэффициентом, все это - в целочисленной математике - о какой точности измерений можно говорить?
Давайте просто откроем в фотогопе в внедренном профиле и пипеткой приличного размера (для усреднения дизера, который там есть) - 11х11 посмотрим значения прямо в LCH. Всего 2 преобразования и никаких интерполяций. И результат - разница примерно 2-3 единицы по всем трем параметрам, о чем я и написал.

Поскольку тестовые изображения 11-битные (2560 оттенков, стохастически перемешанных соседних пикселов по цвету) то переход в 16 бит обязателен. Открываем полученный тиф 16 бит в колорлабе! К сожалению колорлаб экспортирует все в 8 бит, тем не менее учитывая эту погрешность все равно видно, что квадраты одинаковые по хроматичности и светлоте и отличаются лишь по тону. В колорлабе создаем из нашего тифа тесткарту для спектроскана и сохраняем как текстовой файл, открываем, проверяем, вот его содержимое:
Код:
SampleID    SAMPLE_NAME    RGB_R    RGB_G    RGB_B
1    A1    169.42    194.32    216.98
2    B1    169.16    194.44    222.04
Идем например в калькулятор Линдблума и переводим наши цифры sRGB D65 в LCHab D65 (не забываем про D65! чтобы не получить лишней погрешности при хроматической адаптации к другому белому). Получаем с учетом 8-битной погрешности светлоту 77,5 у обоих патчей, hue 256 и 261 и небольшую разницу по хроме. Если бы колорлаб умел выдавать тесткарты в 16-бит - погрешности в хроматике не было бы, два голубых патча отличаются только по тону hue на 4,5 градуса.
Опс, я поторопился - преобразований гораздо больше, с сменой разрядности - и потом снова преобразования. Все-таки предлагаю мерять прямо. Пипетка фотошопа нам переводит в лаб и панель инфо - из лаба в нужную модель, если хотите - в 16 бит предварительно перебросьте. По прежнему не понимаю смысла такой длинной цепочки и трех программ. Тем более, что глазами уверенно видно отличие по насыщенности чуть-ли не раньше, че

Если кто знает как считать в фотошопе или иной программе точное значение пиксела в 16 битном виде - поделитесь, кстати!
настраивается в префах панели инфо в новых фотошопах. имеются в виду те префы, что в самой панели.

Если захотите вслед за мной проверить корректность цветовых патчей на предмет их отличий только в одной из трех координат LCh - не забывайте, что лаб и sRGB у меня все с опорным белым светом D65 и что скриншот с внедренным профилем вашего монитора надо переконвертировать в sRGB прежде чем сравнивать числа RGB-Lch
. Зачем? Я фактически гоню в лаб и оттуда в нужную модель непосредственно из профиля монитора. А как раз профиль монитора как-бы соответствует именно тому, что я вижу. Ну настолько, насколько можно о таком соответствии говорить.

P.S. А скриншот с браузера без колорменеджмента кстати.
Маковский сафарик? вас обманули. Он там в принципе не отключается.
 
Ответ: Статистическое исследование цветоразличительных возможностей

настраивается в префах панели инфо в новых фотошопах. имеются в виду те префы, что в самой панели.
вот тут:
Screen Shot 2013-04-12 at 12.28.51 AM.png

О! понял причину наших разногласий - я скорее всего смотрел в HSB, что не отменяет вопроса, т.к. разница по всем параметрам в HSB не транслируется в разницу по одному параметру в LCH.
 
Ответ: Статистическое исследование цветоразличительных возможностей

На практике при генерации в _целочисленном_ LCH и последующей конверсии в _целочисленный_ sRGB (тем более с низкой разрядностью) так красиво не будет.
У меня все расчеты не с целочисленными значениями а с вполне дробными, более 16 знаков после запятой. Для того, чтобы RGB были с точностью до десятых я их свечу на картинку произвольными соседними точками в заданном количестве, например если надо отобразить 12,3 то я создаю 7 точек со значением 12 и 3 точки со значением 13, перемешиваю их и вывожу в картинку в перемешанном виде. Так по каждому цветовому каналу. Получается 2560 оттенков на канал - это позволяет снизить погрешности преобразования на последнем этапе вывода картинки в RGB.
понял причину наших разногласий - я скорее всего смотрел в HSB
Наверное, я в HSB не проверял что фотошоп насчитывает, все преобразования LCh->Lab->XYZ->sRGB строго по формулам CIE. Хотите еще раз точно все проверить уже в LCh - советую скачивать оригинальные картинки а не делать скриншот в сафари. И фотошоп с целочисленными значениями и пипеткой не очень точный инструмент проверки да и в LCh не умеет считать.
 
Ответ: Статистическое исследование цветоразличительных возможностей

Здорово, что у Вас все круче, чем я думал) Уважаю.
И тем не менее - поскольку я жив не фотошопом единым и картинка лучше тысячи слов. Обратите внимание на каналы, в которых я задрал контраст - и на обсчет в плавающей точке.
Фокус в том, что я это реально вижу на экране - и точно знаю что еще один человек минимум тоже. Отсюда и моё предложение о возможности поставить несколько чекмарков. Правда, как разрулить истинность ответа в такой ситуации я не представляю...
 

Вложения

  • Screen Shot 2013-04-12 at 2.57.54 PM.png
    Screen Shot 2013-04-12 at 2.57.54 PM.png
    245.8 КБ · Просм.: 1 033
  • Screen Shot 2013-04-12 at 2.52.31 PM.png
    Screen Shot 2013-04-12 at 2.52.31 PM.png
    264 КБ · Просм.: 923
  • Screen Shot 2013-04-12 at 2.55.49 PM.png
    Screen Shot 2013-04-12 at 2.55.49 PM.png
    315.6 КБ · Просм.: 893
Ответ: Статистическое исследование цветоразличительных возможностей

Здорово, что у Вас все круче, чем я думал) Уважаю.
Спасибо, я стараюсь все по науке делать. Ваши скриншоты не совсем понял - если там действительно что-то объясняющее причину, вы их прокомментируйте. Я не скажу наверняка, тут меня пусть поправят гуру Sabos или Алексей Шадрин, но цветовая модель HSB которой вы пытаетесь оперировать ущербная, в ней нельзя корректно оперировать цветом так как она базируется на циферках RGB. Насколько я понимаю, при серьезной работе с цветом можно оперировать только теми цветовыми моделями CIE, которые базируются на координатах XYZ. Не берусь это утверждать стопроцентно но CIE кажется вообще ничего не знает о HSB - формул для нее нет. Какая-то самодеятельность неколориметрическая а не цветовая модель прости господи !-)
У меня в вычислениях HSB никак не задействуется, все произвольные значения цветов и величины отклонений от них генерятся в модели CIE LChab. Поэтому предлагаю отклонения по Ligtness, Chroma и Hue для тех или иных полученных RGB-картинок обсчитывать все же в модели LCh а не не пойми в чем.
Да вам вопрос - не нашли вы случайно нигде возможности считать значения пиксела картинки в 16 битах честно. Я даже как-то внутрь тифа однопиксельного пытался заглянуть но не разобрался.

P.S. Да все верно, "Модель HSB была создана Элви Реем Смитом, одним из основателей Pixar, в 1978 году. Она является нелинейным преобразованием модели RGB. Цвет, представленный в HSV, зависит от устройства, на которое он будет выведен". Вобщем доверять цифрам, привязанным к устройству для колориметрического анализа я бы не рискнул.
 
Ответ: Статистическое исследование цветоразличительных возможностей

Спасибо, я стараюсь все по науке делать. Ваши скриншоты не совсем понял - если там действительно что-то объясняющее причину, вы их прокомментируйте.
комментирую - первая картинка - задран контраст в L при полностью задавленном S(aturation)
вторая - задран контраст в c
третья - задан контраст в H
в принципе это видно по нажатым княпочкам под кривыми (с L я лажанул скриншот, но поверьте - это именно L)
То-есть скрины наглядно иллюстрируют, что задрав контрасты в скриншоте по LCH компонентам можно сделать разницу легко видимой - т.е. что эта разница там изначально присутствует.
скриншоты взяты из программы PixInsight, предназначенной для обработки астрономических снимков. Данная программа позволяет делать все преобразования с точностью до double float включительно и, в силу своей научной ориентированности, абсолютно следует стандартам при всех преобразованиях.

Я не скажу наверняка, тут меня пусть поправят гуру Sabos или Алексей Шадрин, но цветовая модель HSB которой вы пытаетесь оперировать ущербная, в ней нельзя корректно оперировать цветом так как она базируется на циферках RGB
Именно дабы не спорить по этому вопросу, на скринах выше я оперировал LCH компонентами.
Да вам вопрос - не нашли вы случайно нигде возможности считать значения пиксела картинки в 16 битах честно.
Не вполне понял, что значит "честно"? Что использовалось и что именно не устроило? Посмотрите в сторону астрономического софта, там с этим строго. IRIS какой-нибудь например очень популярен и находится легко.

ps Если есть желание заглянуть в тиф - можно обчитаться описаниями формата - а можно сделать два однопиксельных тифа - черный и белый - записать их без компрессии и сравнить, hexEdit в помощь ;) Только тиф - штука гибкая, поэтому в дальнейшем лучше той-же программой той-же версии писать самплы.
pps оптимальнее не черный и белый, а черный и что-то типа RGB 66-130-194 для идентификации каналов и bit order
 
Ответ: Статистическое исследование цветоразличительных возможностей

Спасибо! Нашел где включить для пипетки отображение в 16 бит по вашему скриншоту! Просто надо взять пипетку а не просто мышью по изображению водить другими инструментами!
 
Ответ: Статистическое исследование цветоразличительных возможностей

Обратите внимание - фотожоп, собака, 15-битовый. Я до сих пор не разобрался, как он конвертирует 16-15-16 в цикле чтения-записи файла (честно говоря, просто лениво)
 
Ответ: Статистическое исследование цветоразличительных возможностей

комментирую - первая картинка - задран контраст в L при полностью задавленном S(aturation)
вторая - задран контраст в c
третья - задан контраст в H
Ясно! Тогда просьба - исправьте левую или правую часть скриншота так, чтобы между левой и правой половиной была разница в 4,5 градуса по hue и по нулям отклонения по Lightness и Chroma. Присылайте цифры RGB или поправленный таким образом скриншот и скриншоты с задранным контрастом в этой "правильной" картинке - проанализируем правильно ли ваша программа из вашего профиля монитора в LCh пересчитывает.
 
Ответ: Статистическое исследование цветоразличительных возможностей

комментирую - первая картинка - задран контраст в L при полностью задавленном S(aturation)
А нельзя обойтись без Saturation а попробовать в модели LCh задавить именно Chroma в ноль тогда? Не уверен что алгоритм Saturation не задевает светлоту или тон.
 
Ответ: Статистическое исследование цветоразличительных возможностей

Ясно! Тогда просьба - исправьте левую или правую часть скриншота так, чтобы между левой и правой половиной была разница в 4,5 градуса по hue и по нулям отклонения по Lightness и Chroma.
в градусах не буду, ладно? там все в флоат, в диапазоне 0-1. Можно конечно пересчитать, но зачем?
предлагаю такую альтернативу:
Screen Shot 2013-04-12 at 4.55.17 PM.png
Белая кривая - L, коричневая - C , желтая - H
Т.е. LC выровнены, H - без изменений.
скриншоты с задранным контрастом в этой "правильной" картинке
Задираем контрасты вокруг зоны перехода, линейно, даже сильнее, чем в первый раз:
по L
Screen Shot 2013-04-12 at 4.59.15 PM.png
по C
Screen Shot 2013-04-12 at 5.00.11 PM.png
по H, поменьше
Screen Shot 2013-04-12 at 4.58.18 PM.png

Очевидно, что мониторный RGB неземной красоты не даст, но тем не менее.
Кстати, вот вам прямо сохраненный "выровненный" файл на всякий случай - без смены профиля, RGB 16 бит
Посмотреть вложение 123456.zip

проанализируем правильно ли ваша программа из вашего профиля монитора в LCh пересчитывает.
Вам нужно будет быть очень убедительным чтобы доказать мне, что ошибается именно "моя" программа. Учитывая ее целевые задачи ;)
 
Ответ: Статистическое исследование цветоразличительных возможностей

А нельзя обойтись без Saturation а попробовать в модели LCh задавить именно Chroma в ноль тогда? Не уверен что алгоритм Saturation не задевает светлоту или тон.
можно, но результат будет тот-же. Я его ВИЖУ в оригинале, понимаете? Я скриншот сделал именно на глаз - и уже потом стал мерять, чтобы убедиться.
 
Ответ: Статистическое исследование цветоразличительных возможностей

Вам нужно будет быть очень убедительным чтобы доказать мне, что ошибается именно "моя" программа. Учитывая ее целевые задачи ;)
Я не хочу доказывать, что ваша программа ошибается, я вижу огрехи и пытаюсь битый час в коде найти возможные изъяны но не получается. Методично от формуле к формуле перехожу и проверяю результаты. Я не вижу, чтобы отклонялось все сразу на большую величину но небольшая ошибка в RGB да присутствует, кроме одной величины из LCh слегка колеблются и две остальные. Может 11 бит мало, может в другом месте что-то не так - вобщем ищу пока, где точность падает.
 
Ответ: Статистическое исследование цветоразличительных возможностей

в общем случае профиль монитора клиента находится вне вашего контроля - и может вносить интересные спецэффекты.
Вот такой вопрос - к чему приводит преобразование RGB-LCH-RGB по вашим алгоритмам? Сохраняются ли значения? Если есть дрейф - то какой?
 
Ответ: Статистическое исследование цветоразличительных возможностей

У меня в матрице 3х3 перехода от XYZ в sRGB сидела ошибочка, методично искал и нашел, правда не быстро нашел, взял матрицу перехода в sRGB отсюда http://www.brucelindbloom.com/Eqn_RGB_XYZ_Matrix.html и внимательно проверил, что правильно все 9 цифр точно куда надо скопировал. Теперь погрешности в RGB нет. Упыхался искать. Спасибо что обратили внимание. Теперь проверьте пожалуйста: если в картинках есть разница например по тону то ее нет по светлоте и насыщенности и так далее. Ну как и должно быть. Сейчас шум погрешности в RGB не должен превышать 11-битного ограничения картинки (больше 11 бит я боюсь у меня PHP с GD на сервере просто встанут, они и так 5 секунд думают пока рисуют 36 картинок из четырехмерных массивов в ста тысячи циклах).
Вот такой вопрос - к чему приводит преобразование RGB-LCH-RGB по вашим алгоритмам? Сохраняются ли значения? Если есть дрейф - то какой?
Я использую те же формулы CIE на яваскрипте, что и здесь например http://www.brucelindbloom.com/iPhone/ColorConv.html . Вся разница в том, что я гоняю формулы по циклу, обсчитывая массивы, а здесь единичные вычисления. Но в остальном все так же работает - можете понажимать попеременно LCHab и RGB и посмотреть - дрейфа нет. Может в каком 16 знаке после запятой и есть но в целом все эти матричные преобразования CIE работают очень неплохо. Фактически точность упирается только в количество знаков после запятой в матрице перехода а их там 10. А Lab-Lch - это вообще косинус и синус - то есть идеально точно, Lab-XYZ - там аналитические функции тоже без таблиц, умножение, деление и возведение в степень. Фактически погрешность может быть внесена только на этапе XYZ->sRGB коэффициентами матрицы. Но они у Линдблума и у меня в скриптах до 10 знака после запятой так что такой погрешностью можно пренебречь. Вот матрица перехода XYZ->sRGB у меня в тесте:
Код:
var MtxXYZ2RGB = {m00:3.2404541621, m10:-1.5371385128, m20:-0.4985314096, m01:-0.9692660305, m11:1.8760108454, m21:0.0415560175, m02:0.0556434310, m12:-0.2040259135, m22:1.0572251882}; // sRGB
Так что для поставленных целей точности более чем достаточно. Главное ошибок в матрице не делать :)
 
Ответ: Статистическое исследование цветоразличительных возможностей

Замечательно!
Я так понимаю - нужно проходить заново и смотреть/мерять подозрительные случаи?
 
Ответ: Статистическое исследование цветоразличительных возможностей

смотреть/мерять подозрительные случаи?
Да посмотрите еще парой глаз а то у меня уже все мозги опухли. На вскидку не вижу нигде шумов заметных.
Да матрицу 3х3 перехода XYZ->RGB и обратно можно кажется самому рассчитать но мне уже лень сегодня, десять знаков после запятой хватит.
 
Статус
Закрыто для дальнейших ответов.