色彩理论:如何将Munsell HVC转换为RGB / HSB / HSL

26
我正在查看一份文件,描述了牙科中用于描述牙齿颜色的标准颜色。它引用了“色相”、“明度”、“色度”值,并指出它们来自于1905年Munsell颜色描述。
A. H. Munsell在1905年开发的色彩符号系统将颜色分为三个属性:色调(HUE)、明度(VALUE)和饱和度(CHROMA)[15]。
色调(H):Munsell定义色调为区分一种颜色和另一种颜色的质量。他选择了五种基本颜色:红色、黄色、绿色、蓝色和紫色;以及五种中间颜色:黄红色、绿黄色、蓝绿色、紫蓝色和红紫色。这些颜色被放置在一个等分的色环上,两个相邻颜色之间的颜色是两种颜色的混合物,更接近的颜色占优势(见图1)。
明度(V):这个符号表示颜色相对于中性灰度标度的明亮度或暗度,该标度从绝对黑(值符号0)到绝对白(值符号10)延伸。这基本上是指颜色的“亮度”。
饱和度(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。
每个色阶的色调、明度和饱和度的确切值如下所示(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

他们说,亮度值(Brightness)范围在0..10之间,这很好。因此,我认为7.05代表70.5%。
但是,色相(Hue)的测量单位是什么?我习惯于用degrees(0..360)来测量hue。但是,我看到的值都是红色的 - 而它们应该更黄或棕色。
最后,它说Choma / Saturation的范围可以从0..10扩展到更高的值,这使它听起来像是一个任意的刻度。
所以,有人能将Munsell HVC转换为HSB或HSL,甚至更好地转换为RGB吗?

实际上,7.05表示43.2971%。我想现在我已经指出了这一点,这是显而易见的。 :-) 所有的蒙塞尔比例尺都校准过,以便在所有级别上相等的差异代表对具有正常视力的典型人类感知变化相等。这些数字很奇怪,因为大脑很奇怪。 - Jive Dadson
请考虑给StackExchange Color Theory网站点赞/关注:https://area51.stackexchange.com/proposals/110687/color-theory - Adi Shavit
9个回答

20
这相当复杂。简单的回答是,将Munsell代码转换为RGB需要在高度非线性的三维经验数据中进行插值。唯一公开可用的数据集是在1930年代收集的。我在网络上找到的免费或廉价程序已被证明存在缺陷。我写了自己的程序。但是我先说一下基础知识。
Munsell代码与其他代码(如xyY、Lab和RGB)不同。 Munsell符号描述了物体的颜色 - 人们观察物体时所体验到的颜色。(艾萨克·牛顿是第一个意识到颜色是视觉效果的人。)Munsell进行了大量实验,使用了人类主体和巧妙的设备。
其他代码,即xyY、L*a*b*和RGB,描述了反弹到物体上并通过与人眼的一个相当简单的数学模型进行卷积的光线。一些谷歌术语是“照明”,“三刺激”和“CIE标准观察者”。
Munsell描述了物体在各种光源下的颜色。另一个谷歌术语是“色彩适应”。如果照明不太奇怪,大脑中的色彩适应是自动的。这真的非常了不起。将一张打字纸放在蓝天下,它看起来是白色的。把它带到室内,在白炽灯(略带黄色)下看它。它仍然看起来是白色的! Munsell通过经验获得了这种惊人的处理能力。Munsell代码还保留了不同色度下的感知色调。Munsell分配相同色调符号(例如5RP)的天蓝色和粉蓝色,对于具有正常视力的典型人类来说,看起来是相同的色调。有关详细信息,请参见脚注。
CIE xyY、L*a*b*和RGB如果没有指定光源,都没有意义。数学模型中的光源色彩适应计算是困难的。(可以使用“Bradford矩阵”进行粗略但简单的近似。)我们使用的默认RGB是“sRGB”,它指定了一种称为D65的光源。D65类似于正午没有云的日子。OP列出的L*a*b*数字可能是相对于D50的,D50更像下午或早晨的光线。xyY数字可能是相对于D50的,也可能是相对于一个叫做C的旧标准的。我不会去核实。C是20世纪30年代相对廉价的标准照明装置的光线。它已经过时了。但是C在回答问题中起着关键作用。
在20世纪30年代,色彩科学家正在开发数学模型。其中一件事是拿着Munsell Color Book,在书中的彩色芯片上照射光源-C光,并以xyY格式记录数据。这个数据集被称为“Munsell Renotation Data”,是唯一免费提供的数据集。其他数据集肯定存在,但它们是紧密保密的。

好消息是,数据集效果很好。今天的Munsell权威机构是一家叫Gretag Macbeth的公司。我想他们拥有大量与他们销售的颜色芯片相关的数据。我所知道的唯一公布的数字是他们在"Color Checker"卡上一小组颜色的D50 Lab和D65 sRGB数字。我基于旧的重新注释数据编写了一个插值器。它几乎完全符合Color Checker卡的数字。但遗憾的是,到目前为止,我只编写了从sRGB转换到Munsell的代码,与OP(一年前,当我打这个字时)请求的相反方向相反。当我点击图像时,该程序会显示所点击区域的sRGB和Munsell注释。我用它来油画。

My "color-picker" program - work in progress

注:CIE有一个类似于Munsell的标准,称为LCh subscripted with a,b。它在极坐标中是Lab*。色调以度数表示。色度数字大约是Munsell HVC中C的5倍。然而,LCh也存在问题。如果你曾经使用过照片编辑器增强天空的鲜艳度,却看到蓝色变成紫色,那么该程序可能正在使用LCh。当我开始编写我的程序时,我不知道Bruce Lindloom已经做了与我类似的工作。他的网站对我完成项目非常有价值。他设计了一个他称之为UPLab的空间,它是将LCh直接排列以与Munsell对齐。在发现Linbloom先生的网站之前,我已经重新发明了LCh和(本质上)UPLab,但他对这个主题的了解远远超过了我。

2
谢谢你提供这么好的解释!我不禁想知道,你是否已经发布了你的程序源代码,它在哪里可以下载。 - Shnatsel
这是一个非常棒的答案,比我在这个话题上看到的任何其他内容都更具信息量。 - user3351605

15

Munsell Renotation System转换至sRGB颜色空间

Colour是我们的开源Python色彩科学工具包,可以执行该转换。

从Munsell Renotation System到CIE xyY颜色空间

以下两个定义基于Centore(2012)方法,用于在Munsell Renotation SystemCIE xyY颜色空间之间进行转换:

从CIE xyY颜色空间到sRGB颜色空间

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颜色空间转换为Munsell Renotation System(蒙赛尔再标定系统):

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). An open-source inversion algorithm for the Munsell renotation. Color Research & Application, 37(6), 455–464. doi:10.1002/col.20715

11

您提供的色调规范不完整(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*。这两个可以在此处免费在线转换,或使用此免费颜色转换器离线转换。


我的链接页面,在我引用它时,并没有包含那些带有其他颜色模型的文本表格。现在你指出了一些其他archive.org版本已经转换了Munsell值,我的问题基本上已经得到了回答。不过,如果能提供一个Munsell颜色空间转换的公式,那就太好了。 - Ian Boyd
不确定公式是否正确,但我已经在上面链接了一个可以进行转换的工具(munsell.exe)。 - Ohad Schneider

7

有一个免费的R包munsell,可以将Munsell代码转换为RGB颜色(除其他功能外):

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

6

为了完整起见,这是我页面的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. 一种新的用于牙齿颜色测量的小型色差方程。《牙科研究》69:1762-1764,1990年。
  • 152 O'Brien, W.J., Groh, C.L.和Boenke, K.M. 未发表的数据。密歇根大学牙科学院,安娜堡。

4
这里有一个网页:munsell-to-rgb.blogspot.com,似乎正好符合您的需求。目前它似乎还没有完成,但博客的所有者计划定期更新,并提供尽可能多的Munsell-to-RGB转换(他也接受请求!)。
寻找这些颜色系统的可访问转换表格真是太难了,希望这将成为我们的答案! :D

3
我虽然来晚了,但我找到了另一个与此主题相关的资源,可能会有所帮助。
“蒙赛尔色彩科学实验室”的某位人员挖掘出一些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中的每一行以及其他行中的每行各一行。希望这能帮到您。

1
我在转换Munsell和sRGB之间找到了另一个参考链接:http://www.99main.com/~centore/ConversionsBetweenMunsellAndsRGBsystems.pdf该PDF文件包括四页解释性文本,28页表格用于将Munsell转换为sRGB,以及32页表格用于将sRGB转换为Munsell。解释说明转换经过CIE的中间步骤,并假设Munsell的“Illuminant C”是CIE的“Illuminant D65”的足够近似,因此转换不需要调整。 - Steve

2
尽管这篇旧帖子已经存在,为了更新Steve的回答,以下是RIT Munsell数据库的“更正”链接:https://www.rit.edu/cos/colorscience/rc_munsell_renotation.php,以及“真实”的Munsell颜色的sRGB转换值的电子表格的直接链接:http://www.rit-mcsl.org/MunsellRenotation/real_sRGB.xls。这是一个包含从Munsell HVC符号到xyY的转换,然后转换为XYZ_C,再转换为D65照明,然后转换为浮点sRGB,最后量化为8位sRGB值(他们称之为dRGB)的电子表格。
至于OP的问题:sRGB显然是一种RGB加色模型。但与其他色彩模型(如减色CMYK)的差异足够复杂,以至于“简单”的算法无法处理转换——虽然色彩模型转换可以用矩阵近似,但更常见的是使用LUT(查找表),例如ICC配置文件中的LUT或电影制作中使用的3D LUT。(并非所有ICC配置文件都是基于LUT的,但在我看来,需要基于LUT的转换。)
Munsell数据显然属于这个范畴,因为它不仅是一个不同的色彩模型,而且它不仅是一个减色模型,而且还基于感知,而sRGB则基于红绿蓝光之间的简单关系。
电子表格是可用的查找表,因此将您的牙科图表等内容转换为sRGB的程序将接收该数据并引用电子表格中包含的LUT,并返回sRGB值。
附注:为了清晰起见,我想提到,尽管某些颜色空间或颜色模型转换可以通过算法/矩阵合理地完成,但特别是当LUT从给定颜色模型/空间的测量数据创建时,3D LUT更受欢迎,它映射了一些模型中固有的许多非线性。极端的例子是计算机显示器上的sRGB图像与打印在纸张上并出现在摊位上亮着荧光灯的杂志封面上的图像之间的区别。那需要一个3D LUT才能进行精确的转换!
在我主要工作的电影行业中,我们在整个图像流水线中都使用3D LUT,不仅用于转换/变换,还用于“查看”和应用/仿真“外观”。例如,拍摄用数码相机拍摄的图像,并将某种电影胶片的LUT应用于该图像,以使其看起来像胶片。

1

由于许多古老的资源似乎正在枯竭,或者如Microsoft所说,“不适用于此版本的Windows”,因此尽可能地收集资源、转换器和查找表已成为这个问答的主题。让我再添加一个。


Andrew Werth是一位美国艺术家,在他的网站上有一个工具,可以将Munsell转换成RGB和HTML十六进制代码。这个工具全部包含在一个单独的.htm文件中,所以我想它可以被下载并用作桌面工具。实际上,这就是我所做的。

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

我也喜欢这种艺术。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接