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

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

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

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

alt text

VALUE (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 и Показана хрома для каждого из оттенков ниже (16)

alt text

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

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

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

Ответ 1

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

Единственная бесплатная утилита для преобразования Munsell, которую я мог найти, это:

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

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

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

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

Ответ 2

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

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

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

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

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

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

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

My "color-picker" program - work in progress

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

Ответ 3

Система обновления Munsell для конверсии цветов sRGB

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

От системы обновления Munsell до CIE xyY Colourspace

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

Из 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 в систему Rensation 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

Ссылки

  • Ценор, П. (2012). Алгоритм инверсии с открытым исходным кодом для ренотации Munsell. Исследование цвета и применение, 37 (6), 455-464. DOI: 10.1002/col.20715

Ответ 4

Для полноты здесь, версия 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, W.J., Groh, C.L., and Boenke, K.M. Новое, маленькое цветовое решение для зубных оттенков. J.Dent. Местожительство 69: 1762-1764, 1990.
  • 152 O'Brien, W.J., Groh, C.L., and Boenke, K.M. Неопубликованные данные. Университет Мичиганской школы стоматологии, Анн-Арбор.

Ответ 5

Существует бесплатный пакет R munsell, который (среди прочего) преобразует коды Munsell в RGB:

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

Ответ 6

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

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

Ответ 7

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

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

Страница ссылается на электронную таблицу Excel с подмножеством "только реальные цвета" данных, которые попадают в "предел Macadam", что, по-видимому, означает гамму цветов, которая может фактически отображаться на отражающих поверхностях. Однако ссылка на электронную таблицу не работает, но, судя по догадке, я догадался, что она оставила один уровень дерева каталогов. Я пробовал 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 и одна из остальных.

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