26

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

AH Munsell 在 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

他们说 Value(Brightness) 从 变化0..10,这很好。所以我取 7.05 表示 70.5%。

Hue衡量的是什么?我习惯于以(0..360)测量色调。degrees但是我看到的值都是红色的——当它们应该更黄或棕色的时候。

最后,它说 Choma/Saturation 的范围可以从0..10……甚至更高——这听起来像是一个任意的比例。

那么任何人都可以将 Munsell HVC 转换为 HSB 或 HSL,或者更好的是 RGB 吗?

4

9 回答 9

16

它相当复杂。简短的回答是,将孟塞尔码转换为 RGB 涉及高度非线性的 3D 经验数据的插值。唯一可公开获得的数据集是在 1930 年代收集的。我在网上找到的免费或廉价程序已被证明是有缺陷的。我自己写的。但我正在向前跳跃。让我们从基础开始。

Munsell 代码在种类上与其他代码 xyY、Lab 和 RGB 不同。孟塞尔符号描述了物体的颜色——人们在观看物体时所体验到的颜色。(艾萨克·牛顿是第一个意识到颜色在旁观者眼中的人。)孟塞尔对人类受试者和巧妙的设备进行了广泛的实验。

其他代码,即 xyY、La b * 和 RGB,描述了从物体反射并通过一个相当简单的人眼数学模型的卷积的光。一些谷歌术语是“发光体”、“三刺激”和“CIE 标准观察者”。

孟塞尔描述了物体在各种光源下被感知时的颜色。另一个谷歌术语是“色彩适应”。如果光线不太奇​​怪,大脑中的色彩适应是自动的。这真的很了不起。在外面的蓝天下拿一张打字纸。这张纸看起来是白色的。把它带到室内,在白炽灯(黄色)灯下观察它。看起来还是白的!孟塞尔凭经验利用了这种惊人的处理能力。孟塞尔编码还保留了不同色度的感知色调。Munsell 赋予相同色调符号(例如 5RP)的天蓝色和粉蓝色在具有正常视力的典型人看来是相同的色调。更多内容请参见脚注。

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

在 1930 年代,色彩科学家正在开发数学模型。他们所做的其中一件事是拿一本标准的孟塞尔色书,将 C 光源照射在书中的彩色芯片上,并以 xyY 格式记录数据。该数据集称为“Munsell Renotation Data”,是唯一可免费获得的数据集。其他的肯定存在,但它们是保密的。

不过好消息。数据集运行良好。今天的孟塞尔权威是一家名为 Gretag Macbeth 的公司。我想他们有大量与他们销售的色卡相关的数据。我知道他们发布的唯一数字是他们的“Color Checker”卡上的一小组颜色的 D50 Lab 和 D65 sRGB 数字。我根据旧的重注数据编写了一个插值器。它与 Color Checker 卡的数字几乎完全一致。我很遗憾地通知,到目前为止,我只编写了与 OP 要求相反的转换代码(一年前,当我输入这个时)。它从 sRGB 到 Munsell。我单击图像,程序会显示单击区域的 sRGB 和 Munsell 符号。我用它来画油画。

我的

脚注:CIE 有一个类似于 Munsell 的标准。它称为 LCh,下标为 a,b。它是极坐标中的 L a b*。色调以度为单位。色度数约为 Munsell HVC 中 C 的 5 倍。不过 LCh 也有它的问题。如果您曾经使用照片编辑器来提升天空的鲜艳度,却看到蓝色变成紫色,那么该程序可能正在使用 LCh。当我开始编写程序时,我并不知道 Bruce Lindloom 所做的工作与我正在做的事情相似。他的网站当我完成这个项目时,这对我来说是无价的。他设计了一个他称之为 UPLab 的空间,该空间经过 LCh 的整理以与 Munsell 保持一致。在我发现 Linbloom 先生的网站之前,我已经重新发明了 LCh 和(基本上)UPLab,但他对这个主题的了解远远超过了我。

于 2012-09-23T21:27:23.543 回答
13

Munsell Renotation System 到 sRGB 颜色空间的转换

Color,我们的开源 Python 颜色科学包允许执行该转换。

从 Munsell Renotation System 到 CIE xyY Colourspace

以下两个基于 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.2 年 8.1/5.3

参考

  • 森托雷,P.(2012 年)。Munsell renotation 的开源反演算法。颜色研究与应用,37(6),455–464。doi:10.1002/col.20715
于 2015-07-26T03:37:51.230 回答
11

您在此处给出的色调规范不完整(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 l a b*。两者都可以在http://www.colorpro.com/info/tools/convert.htm在线自由转换,也可以使用这个免费的颜色转换器离线转换

于 2010-12-04T12:47:05.470 回答
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, WJ, Groh, CL 和 Boenke, KM 一种新的、用于牙齿色调的小色差方程。J.登特。水库。69:1762-1764, 1990。
  • 152 O'Brien, WJ, Groh, CL 和 Boenke, KM 未发表的数据。密歇根大学牙科学院,安娜堡分校。
于 2010-12-04T15:10:14.113 回答
6

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

R> library(munsell)
R> mnsl2hex("5PB 5/10")
[1] "#3B75BB"
于 2011-04-26T15:34:18.720 回答
4

我在这里找到了一个页面:munsell-to-rgb.blogspot.com,它似乎完全符合您的要求。目前似乎还没有完成,但博客的所有者计划定期更新它,尽可能多地进行 Munsell 到 RGB 的转换(他接受了请求!)。

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

于 2012-01-30T14:29:40.590 回答
3

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

“孟塞尔色彩科学实验室”的某个人从孟塞尔挖出了一些 1943 年的数据,这些数据都是基于 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 的每一行,其他各一行。

我希望这有帮助。

于 2013-09-13T02:34:32.293 回答
1

尽管有这篇旧帖子,为了更新史蒂夫的答案,这里是 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)。

至于 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 应用到该图像上,使其看起来像胶片。

于 2019-03-26T14:35:03.810 回答
1

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


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

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

我也喜欢艺术。

于 2021-03-28T19:24:23.237 回答