Теория цвета: Как конвертировать Munsell HVC в RGB/HSB/HSL

Я смотрю на документ, который описывает стандартные цвета, используемые в стоматологии для описания цвета зуба. Они указывают значения оттенка, значения, цветности и указывают, что они взяты из описания цвета Манселла 1905 года:

Система цветовой нотации, разработанная А. Х. Манселлом в 1905 году, определяет цвет в терминах трех атрибутов: HUE, VALUE (яркость) и CHROMA (насыщенность) [ 15 ].

HUE (H): Munsell определил оттенок как качество, по которому мы различаем один цвет от другого. Он выбрал пять основных цветов: красный, желтый, зеленый, синий и фиолетовый; и пять промежуточных цветов: желто-красный, зелено-желтый, сине-зеленый, пурпурно-синий и красно-фиолетовый. Они были размещены вокруг цветового круга в равных точках, и цвета между этими точками представляют собой смесь двух, в пользу более близкой точки / цвета (см. Рис. 1).

альтернативный текст

ЗНАЧЕНИЕ (V): это обозначение указывает на яркость или темноту цвета по отношению к нейтральной шкале серого, которая простирается от абсолютного черного (символ значения 0) до абсолютного белого (символ значения 10). Это, по сути, "яркий" цвет.

CHROMA (C): указывает на степень отклонения данного оттенка от нейтрального серого с таким же значением. Шкала цветности простирается от 0 для нейтрального серого до 10, 12, 14 или дальше, в зависимости от силы (насыщенности) образца, подлежащего оценке.

Существуют различные системы классификации цвета, система Vita чаще всего используется в стоматологии. При этом используются буквы A, B, C и D для обозначения оттенка (цвета) зуба. Цветность и значение оба обозначены значением от 1 до 4. A1 легче, чем A4, но A4 более насыщенный, чем A1. Если расположить в порядке значений, то есть яркости, порядок от самого яркого до самого темного будет:

A1, B1, B2, A2, A3, D2, C1, B3, D3, D4, A3.5, B4, C2, A4, C3, C4

Точные значения Hue, Value и Chroma для каждого из оттенков показаны ниже ( 16)

альтернативный текст

Поэтому мой вопрос: может ли кто-нибудь конвертировать Munsell HVC в RGB, HSB или HSL?

Hue    Value (Brightness) Chroma(Saturation)
===    ================== ==================
4.5    7.80               1.7
2.4    7.45               2.6
1.3    7.40               2.9
1.6    7.05               3.2
1.6    6.70               3.1
5.1    7.75               1.6
4.3    7.50               2.2
2.3    7.25               3.2
2.4    7.00               3.2
4.3    7.30               1.6
2.8    6.90               2.3
2.6    6.70               2.3
1.6    6.30               2.9
3.0    7.35               1.8
1.8    7.10               2.3
3.7    7.05               2.4

Они говорят, что значение (яркость) варьируется от 0..10 это нормально. Так что я беру 7,05, чтобы означать 70,5%.

Но что это Hue измеряется в? я привык к оттенку измеряется в degrees (0..360). Но все значения, которые я вижу, будут красными - когда они должны быть более желтыми или коричневыми.

Наконец, это говорит о том, что Чома / Насыщенность может варьироваться от 0..10... или даже выше - что звучит как произвольный масштаб.

Так может ли кто-нибудь конвертировать Munsell HVC в HSB или HSL или, что еще лучше, в RGB?

9 ответов

Решение

Спецификация оттенка, которую вы здесь даете, является неполной (4.5 должен быть 4.5Y и т. Д.). Поскольку ссылка мертва, если кому-то интересно, спецификации все еще здесь: http://web.archive.org/web/20071103065312/http://lib.umich.edu/dentlib/Dental_tables/Colorshadguid.html

Единственная бесплатная утилита для конвертации Манселла, которую я смог найти, была такая:

http://web.archive.org/web/20020809130910/standards.gretagmacbeth.com/cmc/munsell.exe

Очень старый, как вы можете видеть, но, кажется, работает хорошо. Текущие программы, которые могут сделать это, не бесплатны:

Нынешние владельцы продуктов Munsell - X-Rite, возможно, у них также есть некоторые решения для конверсии.

Кроме того, обратите внимание, что указанная вами ссылка включает определения для тех же цветов в других цветовых координатах, а именно: Yxy и CIE la b *. Оба могут быть свободно конвертированы онлайн на http://www.colorpro.com/info/tools/convert.htm или оффлайн с помощью этого бесплатного конвертера цветов

Это довольно сложно. Короткий ответ: преобразование кодов Манселла в RGB включает интерполяцию эмпирических данных в 3D, которая является крайне нелинейной. Единственный общедоступный набор данных был собран в 1930-х годах. Бесплатные или недорогие программы, которые я нашел в сети, оказались ошибочными. Я написал свой. Но я забегаю вперед. Давайте начнем с основ.

Коды Манселла отличаются от других кодов: xyY, Lab и RGB. Запись Манселла описывает цвет объекта - то, что люди испытывают, когда они видят объект. (Исаак Ньютон был первым, кто осознал, что цвет в глазах смотрящего.) Манселл провел обширные эксперименты с людьми и гениальными устройствами.

Другие коды, то есть xyY, La b * и RGB, описывают свет, который отразился от объекта и прошел через конвульсию с довольно простой математической моделью человеческого глаза. Некоторые термины Google- это "источник света","три стимул" и "стандартный наблюдатель CIE".

Манселл описывает цвета объектов, как они воспринимаются при широком разнообразии источников света. Другой гугл-термин - "хроматическая адаптация". Хроматическая адаптация в мозге происходит автоматически, если освещение не слишком странное. Это действительно довольно замечательно. Возьмите лист бумаги для печати снаружи под голубым небом. Бумага выглядит белой. Возьмите его в помещении и посмотрите на него под лампами накаливания (желтоватого цвета). Это все еще выглядит белым! Манселл эмпирически использовал эту удивительную вычислительную мощность. Коды Манселла также сохраняют воспринимаемый оттенок при разных цветах. Небесно-голубой и пудрово-голубой цвета, которые Манселл назначает одинаковым обозначениям оттенка, например, 5RP, будут казаться типичному человеку с нормальным зрением одинакового оттенка. Подробнее об этом в сноске.

CIE xyY, La b * и RGB ничего не значат, если не указан источник света. Хроматическая адаптация осветительных приборов в математической модели является вычислительно сложной. (Грубые, но простые приближения могут быть сделаны с использованием "матриц Брэдфорда".) RGB, который мы используем, по умолчанию является "sRGB", который определяет источник света, называемый D65. D65 - это что-то вроде безоблачного дня в полдень. Числа лаборатории, перечисленные OP, вероятно, относятся к D50, который больше похож на дневной или утренний свет. Числа xyY могут быть относительно D50, или они могут быть относительно старого стандарта, называемого C. Я не собираюсь проверять. C был свет от стандартного светильника, который был сравнительно недорогим в 1930-х годах. Это устарело. Но С играет ключевую роль в ответе на вопрос.

В 1930-х годах ученые-колористы разрабатывали математические модели. Одна из вещей, которую они сделали, - взять стандартную Книгу Цветов Манселла, зажечь световой индикатор C на цветных фишках в книге и записать данные в формате xyY. Этот набор данных, называемый "Данные Renotation Munsell", является единственным, доступным бесплатно. Другие, безусловно, существуют, но они держатся в секрете.

Хорошие новости, хотя. Набор данных работает хорошо. Власть Манселла сегодня - это компания под названием Гретаг Макбет. Я предполагаю, что у них есть объемные данные, связанные с цветными чипами, которые они продают. Единственные известные мне номера, которые они публикуют, - это номера D50 Lab и D65 sRGB для небольшого набора цветов на их карточках "Color Checker". Я написал интерполятор, основанный на старых данных ренотации. Это почти точно согласуется с номерами для карты Color Checker. С сожалением сообщаю, что до сих пор я написал только код для преобразования, который идет в направлении, противоположном тому, что запрашивал OP (год назад, когда я печатал это). Это идет от sRGB до Munsell. Я нажимаю на изображение, и программа отображает нотации sRGB и Munsell для области, по которой щелкнули. Я использую это для масляной живописи.

Моя программа

Сноска: CIE имеет стандарт, аналогичный Munsell. Он называется ЛЧ, подписанным с a, b. Это La b * в полярных координатах. Оттенки в градусах. Числа цветности примерно в 5 раз выше, чем в Munsell HVC. У ЛЧ есть свои проблемы. Если вы когда-либо использовали фоторедактор, чтобы повысить яркость неба, чтобы увидеть, как синий цвет превращается в фиолетовый, программа, вероятно, использовала LCh. Когда я начал писать свою программу, я не знал, что Брюс Линдлум сделал работу, параллельную тому, что я делал. Его веб-сайт был неоценим для меня, когда я закончил проект. Он спроектировал пространство, которое он называет UPLab, который выровняли по LCh, чтобы выровнять с Munsell. Я уже заново изобрел ЛЧ и (по сути) UPLab до того, как обнаружил сайт мистера Линблума, но его знание предмета намного превышает мое.

Munsell Renotation System для преобразования цветового пространства в sRGB

Color, наш пакет Python с открытым исходным кодом для цветопередачи, позволяет выполнить это преобразование.

От системы Renotation Munsell до CIE xyY Colourspace

Следующие два определения, основанные на методе Centore (2012), преобразуют между Munsell Renotation System и CIE xyY colourspace:

От CIE xyY Colourspace до sRGB Colourspace

Преобразование из цветового пространства CIE xyY в цветовое пространство sRGB выполняется сначала путем преобразования в трехцветные значения CIE XYZ, а затем в цветовое пространство sRGB с использованием следующих определений:

Реализация

Вот полный аннотированный пример с использованием приведенных выше определений:

import colour

# The *Munsell Renotation System* colour we would like to convert
# to *sRGB* colourspace.
MRS_c = '4.2YR 8.1/5.3'

# The first step is to convert the *MRS* colour to *CIE xyY* 
# colourspace.
xyY = colour.munsell_colour_to_xyY(MRS_c)

# We then perform conversion to *CIE xyY* tristimulus values.
XYZ = colour.xyY_to_XYZ(xyY)

# The last step will involve using the *Munsell Renotation System*
# illuminant which is *CIE Illuminant C*:
# http://nbviewer.ipython.org/github/colour-science/colour-ipython/blob/master/notebooks/colorimetry/illuminants.ipynb#CIE-Illuminant-C
# It is necessary in order to ensure white stays white when
# converting to *sRGB* colourspace and its different whitepoint 
# (*CIE Standard Illuminant D65*) by performing chromatic 
# adaptation between the two different illuminant.
C = colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['C']
RGB = colour.XYZ_to_sRGB(XYZ, C)

print(RGB)

[0,96820063 0,74966853 0,60617991]

Вы также можете выполнить обратное преобразование из цветового пространства sRGB в систему Renotation Munsell:

import colour

C = colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['C']

RGB = (0.96820063, 0.74966853, 0.60617991)

print(colour.xyY_to_munsell_colour(colour.XYZ_to_xyY(colour.sRGB_to_XYZ(RGB, C))))

4.2YR 8.1 / 5.3

Рекомендации

  • Centore, P. (2012). Алгоритм обращения с открытым исходным кодом для ротации Манселла. Color Research & Application, 37(6), 455–464. DOI:10.1002/col.20715

Есть бесплатный пакет R munsell который (среди прочего) преобразует коды Манселла в RGB:

R> library(munsell)
R> mnsl2hex("5PB 5/10")
[1] "#3B75BB"

Для полноты, вот версия archive.org моей страницы, которая содержит цвета в 3 цветовых пространствах: Munsell, Yxy и Lab:

Vita shade-guide colors
_________________________________________________________________

         Munsell         Chromaticity
         notation        coordinates             CIE L* a* b*
         (ref 151)       (ref 152)               (ref 151)
      _____________  _____________________   ___________________
Shade  H    V  C       Y      x      y        L*      a*     b*
_________________________________________________________________

A1    4.5Y 7.80/1.7   55.92  0.3352 0.3459   79.57  -1.61  13.05
A2    2.4Y 7.45/2.3   49.95  0.3468 0.3539   76.04  -0.08  16.73
A3    1.3Y 7.40/2.9   48.85  0.3559 0.3593   75.36   1.36  19.61
A3.5  1.6Y 7.05/3.2   44.12  0.3627 0.3657   72.31   1.48  21.81
A4    1.6Y 6.70/3.1   38.74  0.3633 0.3658   68.56   1.58  21.00
B1    5.1Y 7.75/1.6   54.76  0.3336 0.3447   78.90  -1.76  12.33
B2    4.3Y 7.50/2.2   50.97  0.3437 0.3549   76.66  -1.62  16.62
B3    2.3Y 7.25/3.2   46.91  0.3611 0.3669   74.13   0.47  22.34
B4    2.4Y 7.00/3.2   43.38  0.3620 0.3678   71.81   0.50  22.15
C1    4.3Y 7.30/1.6   47.16  0.3361 0.3462   74.21  -1.26  12.56
C2    2.8Y 6.95/2.3   42.12  0.3487 0.3563   70.95  -0.22  16.72
C3    2.6Y 6.70/2.3   39.11  0.3499 0.3569   68.83  -0.01  16.68
C4    1.6Y 6.30/2.7   33.77  0.3600 0.3622   64.78   1.59  18.66
D2    3.0Y 7.35/1.8   48.71  0.3391 0.3473   75.27  -0.54  13.47
D3    1.8Y 7.10/2.3   44.48  0.3482 0.3534   72.55   0.62  16.14
D4    3.7Y 7.05/2.4   43.45  0.3492 0.3591   71.86  -1.03  17.77
_________________________________________________________________
H        hue
V        value
C        chroma
Y        lightness
x and y  hue and chroma
L*       lightness
a*       hue and chroma on a red/green scale
b*       hue and chroma on a yellow/blue scale

Рекомендации

  • 151 O'Brien, WJ, Groh, CL, и Boenke, KM Новое уравнение с малой разностью цветов для зубных оттенков. J.Dent. Местожительство 69: 1762-1764, 1990.
  • 152 О'Брайен, WJ, Groh, CL, и Boenke, KM Неопубликованные данные. Школа стоматологии Университета Мичигана, Энн Арбор.

Я нашел здесь страницу: http://munsell-to-rgb.blogspot.com/, которая, кажется, делает именно то, что вы ищете. В данный момент он кажется незавершенным, но владелец блога планирует регулярно обновлять его, используя как можно больше конверсий Munsell-RGB (и он принимает запросы!).

Удивительно, как трудно найти доступные таблицы преобразования для этих цветовых систем; надеюсь, это будет нашим ответом!:D

Я опоздал на вечеринку, но нашел другой ресурс, который может быть полезен по этой теме.

Кто-то из "Научной лаборатории цветов Манселла" выкопал некоторые данные Манселла за 1943 год, основанные на исследованиях Манселла 1930-х годов: http://www.cis.rit.edu/research/mcsl2/online/munsell.php

Страница ссылается на электронную таблицу Excel с поднабором "только реальные цвета" данных, который находится в пределах "предела макадама", что, как представляется, означает гамму цветов, которые могут фактически появляться на отражающих поверхностях. Однако ссылка на электронную таблицу не работает, но, догадываясь, я догадался, что она пропустила один уровень дерева каталогов. Я попробовал URL http://www.cis.rit.edu/research/mcsl2/online/real_sRGB.xls - и это сработало. (Я не удивлюсь, если владелец сайта в конечном итоге заметит это и исправит ссылку, которая, вероятно, сломает мою ссылку.)

Я немного испортил эту электронную таблицу, чтобы заставить ее генерировать HTML, чтобы показать мне цвета RGB, и добавил эти ячейки в электронную таблицу:

<table>
  .<colgroup> <col /> <col span="3" style="background-color:#eeeeee;" /> <col span="3" /> <col span="3" style="background-color:#eeeeee;" /> <col span="3" /> <col span="3" style="background-color:#eeeeee;" /> <col span="3" /> <col style="background-color:#eeeeee;" /> <col /> </colgroup>
  ="<tr> <th> "&A1&" </th> <th> "&B1&" </th> <th> "&C1&" </th> <th> "&D1&" </th> <th> "&E1&" </th> <th> "&F1&" </th> <th> "&G1&" </th> <th> "&H1&" </th> <th> "&I1&" </th> <th> "&J1&" </th> <th> "&K1&" </th> <th> "&L1&" </th> <th> "&M1&" </th> <th> "&N1&" </th> <th> "&O1&" </th> <th> "&P1&" </th> <th> "&Q1&" </th> <th> "&R1&" </th> <th> "&S1&" </th> <th> #RGB </th> <th> sample </th> </tr> "
  ="<tr> <td> "&A2&" </td> <td> "&B2&" </td> <td> "&C2&" </td> <td> "&D2&" </td> <td> "&E2&" </td> <td> "&F2&" </td> <td> "&G2&" </td> <td> "&H2&" </td> <td> "&I2&" </td> <td> "&J2&" </td> <td> "&K2&" </td> <td> "&L2&" </td> <td> "&M2&" </td> <td> "&N2&" </td> <td> "&O2&" </td> <td> "&P2&" </td> <td> "&Q2&" </td> <td> "&R2&" </td> <td> "&S2&" </td> <td> #"&T2&" <td style="&CHAR(34)&"background-color:#"&T2&"; width:2em;"&CHAR(34)&"> &nbsp; </td> </tr> "
  ="<tr> <td> "&A3&" </td> <td> "&B3&" </td> <td> "&C3&" </td> <td> "&D3&" </td> <td> "&E3&" </td> <td> "&F3&" </td> <td> "&G3&" </td> <td> "&H3&" </td> <td> "&I3&" </td> <td> "&J3&" </td> <td> "&K3&" </td> <td> "&L3&" </td> <td> "&M3&" </td> <td> "&N3&" </td> <td> "&O3&" </td> <td> "&P3&" </td> <td> "&Q3&" </td> <td> "&R3&" </td> <td> "&S3&" </td> <td> #"&T3&" <td style="&CHAR(34)&"background-color:#"&T3&"; width:2em;"&CHAR(34)&"> &nbsp; </td> </tr> "
  ="<tr> <td> "&A4&" </td> <td> "&B4&" </td> <td> "&C4&" </td> <td> "&D4&" </td> <td> "&E4&" </td> <td> "&F4&" </td> <td> "&G4&" </td> <td> "&H4&" </td> <td> "&I4&" </td> <td> "&J4&" </td> <td> "&K4&" </td> <td> "&L4&" </td> <td> "&M4&" </td> <td> "&N4&" </td> <td> "&O4&" </td> <td> "&P4&" </td> <td> "&Q4&" </td> <td> "&R4&" </td> <td> "&S4&" </td> <td> #"&T4&" <td style="&CHAR(34)&"background-color:#"&T4&"; width:2em;"&CHAR(34)&"> &nbsp; </td> </tr> "
  .
  .
  .
  ="<tr> <td> "&A1626&" </td> <td> "&B1626&" </td> <td> "&C1626&" </td> <td> "&D1626&" </td> <td> "&E1626&" </td> <td> "&F1626&" </td> <td> "&G1626&" </td> <td> "&H1626&" </td> <td> "&I1626&" </td> <td> "&J1626&" </td> <td> "&K1626&" </td> <td> "&L1626&" </td> <td> "&M1626&" </td> <td> "&N1626&" </td> <td> "&O1626&" </td> <td> "&P1626&" </td> <td> "&Q1626&" </td> <td> "&R1626&" </td> <td> "&S1626&" </td> <td> #"&T1626&" <td style="&CHAR(34)&"background-color:#"&T1626&"; width:2em;"&CHAR(34)&"> &nbsp; </td> </tr> "
</table>

Таблице нужна одна строка, каждая из которых начинается с A2 до A1626, и одна каждая из остальных.

Надеюсь, это поможет.

Несмотря на этот старый пост, чтобы обновить ответ Стива, вот "исправленные" ссылки на репозитории RIT данных Манселла:

https://www.rit.edu/cos/colorscience/rc_munsell_renotation.php

И прямая ссылка на таблицу преобразованных значений sRGB "настоящих" цветов Манселла:

http://www.rit-mcsl.org/MunsellRenotation/real_sRGB.xls

Это электронная таблица, которая включает преобразование нотации Munsell HVC в xyY, затем в XYZ_C, затем преобразуется в источник света D65, затем в sRGB с плавающей запятой, а затем квантован в 8-битные значения sRGB (которые они называют dRGB).

Что касается вопроса ОП: sRGB - это (очевидно) аддитивная цветовая модель RGB. Но различия с другими цветовыми моделями, такими как вычитающая CMYK, достаточно сложны, чтобы "простой" алгоритм не справился с преобразованием - в то время как преобразования цветовой модели можно аппроксимировать с помощью матрицы, чаще всего LUT (таблица поиска) предпочтительнее, такие как LUT в профиле ICC или 3D LUT, используемые при производстве фильмов. (Не все профили ICC основаны на LUT, но IMO на основе LUT - то, что нужно здесь).

Данные Манселла, безусловно, попадают в эту категорию, поскольку они представляют собой не только другую цветовую модель, но и не только субтрактивную модель, основанную на восприятии, в то время как sRGB основана на простых отношениях между красным, зеленым и синим светом.

Электронная таблица является полезной справочной таблицей, поэтому программа для преобразования таких данных, как стоматологическая карта, в sRGB будет принимать эти данные и ссылаться на LUT, содержащийся в электронной таблице, и возвращать значения sRGB.

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

В качестве крайнего примера можно привести изображение sRGB на мониторе компьютера по сравнению с тем, как это изображение печатается на бумаге и появляется на обложке журнала, расположенного на газетном киоске, освещенном флуоресцентным светом. Это требует 3D LUT для точного преобразования!

В индустрии художественных фильмов (где я в основном работаю) мы используем 3D LUT по всему конвейеру изображения, не только для преобразования / преобразования, но и для "просмотра" и для применения / эмуляции "внешнего вида". Например, снятие изображения, снятого цифровой камерой, и применение LUT определенного запаса пленки к этому изображению, чтобы оно выглядело как пленка.

Поскольку многие из ресурсов давно минувших дней, похоже, истощаются или, как выразилась Microsoft, «не предназначены для этой версии Windows», сбор как можно большего количества ресурсов, конвертеров и справочных таблиц — вот что этот вопрос и ответ превратился в. Тогда позвольте мне добавить еще один.


Эндрю Верт, художник из США, разместил на своем сайте инструмент для преобразования кодов Манселла в шестнадцатеричные коды RGB и HTML. Это все внутри одного сингла файл, поэтому я думаю, что его можно загрузить и использовать на своем рабочем столе в качестве своего рода инструмента. Собственно, это я и сделал.

https://www.andrewwerth.com/color/

Искусство мне тоже нравится.

Другие вопросы по тегам