Перейти к содержанию
    

Цветовая развертка, как вычислить?

44 minutes ago, ViKo said:

Никогда. Низ картинки весь разбавлен белым.

А верх весь разбавлен чёрным. Максимальная насыщенность — "цветность", выкрученная на максимум, насколько позволяют другие параметры.

Вот цилиндр цветовой схемы HSL. Минимальная насыщенность на оси цилиндра, там всё в градациях серого. Максимальная — на внешней боковой стороне, куда "приклеена" картинка ТС'а.

HSL_color_solid_cylinder_saturation_gray

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, ae_ сказал:

это развёртка боковой поверхности цилиндра HSL(HSI) при S=100%.

Координата X — это угол 0-360°, он задаёт цв.тон - Hue

Координата Y — это интенсивность или светлость(не яркость) - Lightness

Тогда координаты должны называться H и L, а не X и Y — и то, и другое уже давно занято.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я ответил в терминах ТС'а из первого поста. Там, как я понял, XY — это координаты пикселя из его картинки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На предыдущей странице автор за что-то извинился и заменил двумерную картинку одномерной, у которой координата одна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, ViKo said:

Никогда. Низ картинки весь разбавлен белым.

Я поступил проще. Загрузил картинку во флеш и просто определяю цвет пикселя в координатах. Нерационально конечно, но место во флеши есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, ae_ сказал:

Максимальная насыщенность — "цветность", выкрученная на максимум, насколько позволяют другие параметры.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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. При уходе в белый или чёрный насыщенность падает. Способ показать, что высветление/затемнение ограничивает насыщенность, цилиндр усекают до сдвоенного конуса и термин "насыщенность" заменяют на "цветность":

HSL_color_solid_dblcone_chroma_gray.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

загружаете в фотошо, считываете в пространстве 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х такие картинки использовались для теста оборудования... при проблемах появлялся или бандинг, или цвета скакали при  перполенинии значений

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

03.01.2021 в 05:22, ae_ сказал:

Я предложил формулы перевода точки 3D пространства с координатами HSL в цвет RGB. Но у автора только 2D картинка, поэтому в формулах подставляем H=X; L=Y; S=100%. Именно это я имел ввиду, что для всей картинки насыщенность всегда берём =100% при расчётах.

Почти в точку.

Только вот насыщенность (saturation) принимать как максимальное значение ошибочно. Так как по данному значению определяется именно насыщенность цветовой гаммы. Расчет изображений в формате HLS популярен в машинном зрении.

И похоже автор темы движется именно в этом направлении.

Изменено пользователем Droid 77

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

hsv-to-rgb.gif.8778954934795807a6abbb4813c5c5af.gif

(R,G,B) = ((R'+m)×255, (G'+m)×255, (B'+m)×255)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...