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

时间:2010-09-01 17:34:39

标签: colors rgb hsl hsb color-theory

我正在查看描述牙科用于描述牙齿颜色的标准颜色的文件。他们引用 hue value chroma 值,并指出它们来自1905年Munsell的颜色描述:

  

颜色表示法系统   由A. H. Munsell于1905年开发   用三个来识别颜色   属性:HUE,VALUE(亮度)   和CHROMA(饱和度)[15]

     

HUE(H):孟塞尔将色调定义为   我们区分的品质   另一种颜色。他选了五个   原理颜色:红色,黄色,绿色,   蓝色和紫色;和五   中间色:黄红色,   绿黄色,蓝绿色,紫蓝色,   和红紫色。放置这些   围绕一个相等点的色圈   以及这些之间的颜色   积分是两者的混合物   赞成更接近的点/颜色(见   图1。)。

     

alt text

     

VALUE(V):此符号表示   一种颜色的亮度或暗度   与中性灰度的关系,   从绝对黑色延伸   (值符号0)为绝对白色   (值符号10)。这本质上是   这种颜色有多么“明亮”。

     

CHROMA(C):这表示程度   从一个给定的色调的分歧   中性灰色的相同值。该   色度的范围从0延伸到a   中性灰色至10,12,14或更远,   取决于力量   (饱和)样品   评价。

     

有各种各样的系统   分类颜色,Vita系统   最常用于牙科。   这使用字母A,B,C和D.   表示牙齿的色调(颜色)。   色度和值都是   由1到4的值表示   比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测量的是什么?我习惯于在<{1}}(0..360)中测量色调。但我看到的价值都是红色的 - 当它们应该更黄或者棕色时。

最后,它说Choma / Saturation的范围可以从degrees ...或甚至更高 - 这使它听起来像一个任意比例。

那么有人能将Munsell HVC转换为HSB或HSL,还是更好的RGB?

9 个答案:

答案 0 :(得分:15)

相当参与。简短的回答是,将Munsell代码转换为RGB涉及3D高度非线性的经验数据插值。公开的唯一数据集是在20世纪30年代收集的。我在网上找到的免费或廉价程序已被证明是有缺陷的。我写了自己的。但我正在跳跃。让我们从基础开始。

Munsell代码的种类与其他代码xyY,Lab和RGB不同。 Munsell表示法描述了对象的颜色 - 人们在查看对象时的体验。 (Isaac Newton是第一个意识到颜色在旁观者眼中的人。)Munsell对人类主体和巧妙的设备进行了广泛的实验。

其他代码,即xyY,L a b *和RGB,描述了 light ,它已经从一个对象反弹并通过一个相当简单的数学的卷积传递人眼的模型。一些谷歌术语是“光明”,“三刺激”和“CIE标准观察者”。

Munsell描述了物体在各种光源下的感知颜色。另一个谷歌术语是“色彩适应”。如果照明不太奇怪,大脑中的色彩适应是自动的。这真的非常了不起。在蓝天下拍一张打字纸。纸看起来很白。把它放在室内,在白炽灯(黄色)下看它。它仍然看起来很白!孟塞尔凭经验挖掘出惊人的处理能力。 Munsell代码还保留了不同色度的感知色调。天蓝色和粉蓝色,孟塞尔指定相同的色调符号,例如5RP,对于具有正常视力的典型人来说将是相同的色调。更多内容在脚注中。

CIE xyY,L a b *,除非指定了光源,否则RGB没有任何意义。在数学模型中对光源的色度适应在计算上是困难的。 (粗略但简单的近似可以使用“Bradford矩阵”完成。)我们使用的RGB默认为“sRGB”,它指定了一个名为D65的光源。 D65就像中午无云的日子。 OP列出的实验室编号可能与D50有关,更像下午或晨光。 xyY数字可能与D50有关,或者它们可能与称为C的旧标准有关。我不打算检查。 C是来自标准照明灯具的灯,在20世纪30年代相对便宜。它已经过时了。但C在这个问题的答案中起着关键作用。

在20世纪30年代,色彩科学家正在开发数学模型。他们所做的一件事就是采用标准的Munsell颜色书,在书中的彩色芯片上照射光源-C灯,并以xyY格式记录数据。该数据集称为“Munsell Renotation Data”,是唯一可免费获得的数据集。其他人肯定存在,但他们是密切关注的秘密。

虽然好消息。数据集运行良好。今天的Munsell当局是一家名为Gretag Macbeth的公司。我想他们有大量与他们销售的彩色芯片相关的数据。我知道他们发布的唯一数字是D50 Lab和D65 sRGB数字,用于"Color Checker"卡上的一小组颜色。我根据旧的注释数据编写了一个插补器。它几乎完全同意Color Checker卡的数字。我很遗憾地告诉我,到目前为止,我只编写了转换的代码,与OP请求的方向相反(一年前,我输入此内容)。它从sRGB到Munsell。我点击一个图像,程序显示所点击区域的sRGB和Munsell符号。我把它用于油画。

My "color-picker" program - work in progress

脚注:CIE有一个类似于Munsell的标准。它被称为LCh下标a,b。在极坐标中是L a b *。色调是度数。色度数约为Munsell HVC中C的5倍。但LCh有其问题。如果您曾经使用照片编辑器来提升天空的生动性,只看到蓝色变成紫色,程序可能正在使用LCh。当我开始编写程序时,我没有意识到Bruce Lindloom完成了与我正在做的工作相似的工作。完成项目后,His web site对我来说非常宝贵。他设计了一个他称之为UPLab的空间,这是LCh整理出来与Munsell对齐。在我发现Linbloom先生的网站之前,我已经重新发明了LCh和(基本上)UPLab,但他对这个主题的了解远远超过我的。

答案 1 :(得分: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 l a b *。两者都可以http://www.colorpro.com/info/tools/convert.htm在线自由转换,也可以使用此free color converter

离线转换

答案 2 :(得分:9)

Munsell Renotation System to sRGB Colourspace Conversion

Colour,我们的开源Python色彩科学软件包允许执行该转换。

从Munsell Renotation System到CIE xyY Colourspace

基于Centore(2012)方法的以下两个定义在 Munsell Renotation System CIE xyY colourspace之间进行转换:

从CIE xyY Colourspace到sRGB Colourspace

CIE xyY colourspace转换为 sRGB colourspace是通过首先转换为 CIE XYZ 三刺激值然后转换为 sRGB <来完成的。 / em> colourspace使用以下定义:

实施

以下是使用上述定义的注释完整示例:

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 colourspace到 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)。 Munsell注释的开源反演算法。色彩研究与发展申请,37(6),455-464。 DOI:10.1002 / col.20715

答案 3 :(得分: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。和Boenke,K.M。一种新的,用于牙齿色调的小色差方程。 J.Dent。 RES。 69:1762-1764,1990。
  • 152 O'Brien,W.J.,Groh,C.L。和Boenke,K.M。未发表的数据。密歇根大学牙医学院,安娜堡。

答案 4 :(得分:6)

有一个免费的R包munsell,它将(除其他外)将Munsell代码转换为RGB:

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

答案 5 :(得分:4)

我在这里找到了一个页面:munsell-to-rgb.blogspot.com似乎正在完成你所追求的目标。目前似乎尚未完成,但博客的所有者计划尽可能多地使用Munsell-to-RGB转换来更新它(并且他接受了请求!)。

为这些颜色系统找到可访问的转换表是多么的难过;希望这将是我们的答案! :D

答案 6 :(得分:3)

我迟到了,但我找到了另一个可能对这个主题有用的资源。

“Munsell色彩科学实验室”的某人挖出了1943年来自Munsell的数据,这些数据均基于20世纪30年代的Munsell研究:http://www.cis.rit.edu/research/mcsl2/online/munsell.php

该页面指的是一个Excel电子表格,其中“仅限于真实颜色”的数据子集属于“Macadam限制”,这似乎意味着可以实际出现在反射表面上的色域。然而,电子表格链接不起作用,但是在预感中,我猜测它遗漏了目录树的一个级别。我尝试了网址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开始的每一行,以及其他每一行。

我希望这会有所帮助。

答案 7 :(得分:1)

尽管有这篇旧文章,但为了更新史蒂夫的答案,这里是RIT的Munsell数据存储库的“更正”链接:

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)的转换。

关于OP的问题:sRGB(显然)是RGB加法色彩模型。但是与其他颜色模型(例如减法CMYK)的差异非常复杂,以至于“简单”算法将无法处理转换-虽然颜色模型转换可以使用矩阵进行近似,但更常见的是使用LUT(查找表),例如ICC档案中的LUT或电影制作中使用的3D LUT。 (并非所有ICC配置文件都基于LUT,但此处需要基于LUT的转换IMO)。

Munsell数据当然属于这一类,因为它不仅是不同的颜色模型,而且不仅是基于感知的减色模型,而sRGB是基于红绿光和蓝光之间的简单关系。

电子表格是可用的查找表,因此,将牙齿图等内容转换为sRGB的程序将接收该数据,并引用电子表格中包含的LUT,并返回sRGB值。

侧面说明: 为了清楚起见,我想提一下,尽管一些颜色空间或颜色模型转换可以通过算法/矩阵,最好使用3D LUT,尤其是根据给定颜色模型/空间的测量数据创建LUT时,它映射了某些模型固有的许多非线性。

一个极端的例子是计算机显示器上的sRGB图像与该图像如何打印到纸张上以及如何出现在杂志架的书架上,该杂志架位于用荧光灯照明的报摊上。这需要3D LUT才能进行准确的转换!

在故事片行业(我主要从事的工作),我们在整个图像流水线中使用3D LUT,不仅用于转换/变换,而且用于“观看”和应用/模拟“外观”。例如,用数码相机拍摄图像,然后将某种胶卷的LUT应用于该图像,以使其看起来像胶卷。

答案 8 :(得分:1)

由于过去的许多资源似乎正在减少,或者正如微软所说,“不适用于此版本的 Windows”,因此将尽可能多的资源、转换器和查找-表尽可能,就是这个问答变成了什么。那么请允许我再添加一个。


Andrew Werth 是一位美国艺术家,在他们的网站上有一个工具可以将孟塞尔代码转换为 RGB 和 HTML 十六进制代码。它都在一个 .htm 文件中,所以我想它可以作为一种工具下载并在桌面上使用。事实上,这就是我所做的。

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

我也喜欢艺术。