ae_ 2 January 2, 2021 Posted January 2, 2021 · Report post 44 minutes ago, ViKo said: Никогда. Низ картинки весь разбавлен белым. А верх весь разбавлен чёрным. Максимальная насыщенность — "цветность", выкрученная на максимум, насколько позволяют другие параметры. Вот цилиндр цветовой схемы HSL. Минимальная насыщенность на оси цилиндра, там всё в градациях серого. Максимальная — на внешней боковой стороне, куда "приклеена" картинка ТС'а. Quote Share this post Link to post Share on other sites More sharing options...
Plain 351 January 2, 2021 Posted January 2, 2021 · Report post 6 часов назад, ae_ сказал: это развёртка боковой поверхности цилиндра HSL(HSI) при S=100%. Координата X — это угол 0-360°, он задаёт цв.тон - Hue Координата Y — это интенсивность или светлость(не яркость) - Lightness Тогда координаты должны называться H и L, а не X и Y — и то, и другое уже давно занято. Quote Share this post Link to post Share on other sites More sharing options...
ae_ 2 January 2, 2021 Posted January 2, 2021 · Report post Я ответил в терминах ТС'а из первого поста. Там, как я понял, XY — это координаты пикселя из его картинки. Quote Share this post Link to post Share on other sites More sharing options...
Plain 351 January 2, 2021 Posted January 2, 2021 · Report post На предыдущей странице автор за что-то извинился и заменил двумерную картинку одномерной, у которой координата одна. Quote Share this post Link to post Share on other sites More sharing options...
-=Женек=- 0 January 2, 2021 Posted January 2, 2021 · Report post 5 hours ago, ViKo said: Никогда. Низ картинки весь разбавлен белым. Я поступил проще. Загрузил картинку во флеш и просто определяю цвет пикселя в координатах. Нерационально конечно, но место во флеши есть. Quote Share this post Link to post Share on other sites More sharing options...
ViKo 0 January 2, 2021 Posted January 2, 2021 · Report post 7 часов назад, ae_ сказал: Максимальная насыщенность — "цветность", выкрученная на максимум, насколько позволяют другие параметры. Максимальная насыщенность - когда хотя бы один из цветов равен 0. Когда же все 3 цвета ненулевые, тогда и насыщенность спадает. Quote Share this post Link to post Share on other sites More sharing options...
ae_ 2 January 3, 2021 Posted January 3, 2021 · Report post 18 hours ago, ae_ said: Насыщенность - Saturation для этой картинки всегда =100% 12 hours ago, ViKo said: Никогда. Низ картинки весь разбавлен белым. ... Максимальная насыщенность - когда хотя бы один из цветов равен 0. Когда же все 3 цвета ненулевые, тогда и насыщенность спадает. Я предложил формулы перевода точки 3D пространства с координатами HSL в цвет RGB. Но у автора только 2D картинка, поэтому в формулах подставляем H=X; L=Y; S=100%. Именно это я имел ввиду, что для всей картинки насыщенность всегда берём =100% при расчётах. Что до субъективной насыщенности, я считаю только средняя линия имеет максимальную насыщенность, один цвет обязательно =0 и один цвет обязательно =255. При уходе в белый или чёрный насыщенность падает. Способ показать, что высветление/затемнение ограничивает насыщенность, цилиндр усекают до сдвоенного конуса и термин "насыщенность" заменяют на "цветность": Quote Share this post Link to post Share on other sites More sharing options...
Hale 1 January 4, 2021 Posted January 4, 2021 · Report post загружаете в фотошо, считываете в пространстве sRGB, это стандартное пространство для большинства форматов в отсутствие встроенного профиля. по аналоговому изображению без спектроколориметра и полного профилирования всей цепочки вывода вы никак не вычислите стандартных значений RGB. см. Argyll CMS, color.org. на тех же ресурсах моно поискать описание кривых компрессии для конвертации значений из файла в линейное представление без фотошопа. При условии что картнка была создана без таблиц трансляции в профиле, т.е. чистый TIFF, или JPG без icc. При работе в Wide Gamut icc обычно сохраняют во избежание разночтений; но считывание без icc приведет к некорректным цветам. Есть еще одна особенность. На самом деле в JPEG есть тэг sRGB. Если отсутствует и этот тег и данные icc, то с подачи Adobe и Canon стало принято считать такие фотографии Adobe RGB по умолчанию. Соответственно коррекция в ваше (квазилинейное https://en.wikipedia.org/wiki/CIE_1931_color_space) пространсво меняется. ae_, совершенно верно. причем не самый информативный срез. В 80х такие картинки использовались для теста оборудования... при проблемах появлялся или бандинг, или цвета скакали при перполенинии значений Quote Share this post Link to post Share on other sites More sharing options...
Droid 77 0 January 5, 2021 Posted January 5, 2021 (edited) · Report post 03.01.2021 в 05:22, ae_ сказал: Я предложил формулы перевода точки 3D пространства с координатами HSL в цвет RGB. Но у автора только 2D картинка, поэтому в формулах подставляем H=X; L=Y; S=100%. Именно это я имел ввиду, что для всей картинки насыщенность всегда берём =100% при расчётах. Почти в точку. Только вот насыщенность (saturation) принимать как максимальное значение ошибочно. Так как по данному значению определяется именно насыщенность цветовой гаммы. Расчет изображений в формате HLS популярен в машинном зрении. И похоже автор темы движется именно в этом направлении. Edited January 5, 2021 by Droid 77 Quote Share this post Link to post Share on other sites More sharing options...
ae_ 2 January 5, 2021 Posted January 5, 2021 · Report post 2 hours ago, Droid 77 said: Только вот насыщенность (saturation) принимать как максимальное значение ошибочно. Так как по данному значению определяется именно насыщенность цветовой гаммы. Вы голословно назвали моё решение ошибочным, но не показали своё правильное решение. Автор уже решил вопрос табличным способом, загрузив картинку целиком в память и читая из неё значения RGB по нужным координатам. Изначально вопрос был как вычислить эти значения без таблицы, алгоритмически. Я привёл формулы, как из координат XY растровой картинки получить значения RGB этой точки. В этих формулах HSL to RGB значение S нужно принять за константу =1 (100%). По ссылкам никто не ходит, продублирую здесь: 0 ≤ H < 360, 0 ≤ S ≤ 1, 0 ≤ L ≤ 1 C = (1 - |2L - 1|) × S // Вот здесь насыщенность можно просто убрать из формулы при работе с 2D картинкой X = C × (1 - |(H / 60°) mod 2 - 1|) m = L - C/2 (R,G,B) = ((R'+m)×255, (G'+m)×255, (B'+m)×255) Quote Share this post Link to post Share on other sites More sharing options...