我正在查看描述牙科中用于描述牙齿颜色的标准颜色的文件。他们引用色调,值,色度值,并指出它们来自1905年Munsell的颜色描述:
由A. H. Munsell在1905年开发的颜色符号系统根据三个属性识别颜色:HUE,VALUE(亮度)和CHROMA(饱和度)[15]
HUE(H):Munsell将色调定义为我们将一种颜色与另一种颜色区分开来的质量。他选择了五种主要颜色:红色,黄色,绿色,蓝色和紫色;五种中间色:黄红色,绿黄色,蓝绿色,紫蓝色和红紫色。它们被放置在相同点的色环周围,这些点之间的颜色是两者的混合,有利于更接近的点/颜色(见图1)。
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,I,D2,1,Bz,I,Dch,Az.5,Bch,2,Ah,Zz,Ts
每种色调的色调,值和色度的确切值如下所示(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)测量。但我看到的价值都是红色的 - 当它们应该更黄或者棕色时。
最后,它说Choma /饱和度可以从0..10
...甚至更高 - 这使它听起来像任意规模。
那么有人能将Munsell HVC转换为HSB或HSL,还是更好的RGB?
你在这里给出的色调规范是不完整的(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在线自由转换或使用此free color converter离线转换
它涉及很多。简短的回答是,将Munsell代码转换为RGB涉及3D高度非线性的经验数据的插值。唯一公开的数据集是在20世纪30年代收集的。我在网上找到的免费或廉价程序已被证明是有缺陷的。我写了自己的。但我正在跳跃。让我们从基础开始。
Munsell代码的种类与其他代码xyY,Lab和RGB不同。 Munsell符号描述了对象的颜色 - 人们在查看对象时的体验。 (Isaac Newton是第一个意识到颜色在旁观者眼中的人。)Munsell对人类主体和巧妙设备进行了大量实验。
其他代码,即xyY,Lab *和RGB,描述了从物体反弹并通过人眼相当简单的数学模型通过卷积的光。一些谷歌术语是“光明”,“三刺激”和“CIE标准观察者”。
Munsell描述了在各种光源下感知物体的颜色。另一个谷歌术语是“色彩适应”。如果照明不太奇怪,大脑中的色彩适应是自动的。这真的非常了不起。在蓝天下拍一张打字纸。纸看起来很白。把它放在室内,在白炽灯(黄色)下看它。它仍然看起来很白!孟塞尔凭经验挖掘出惊人的处理能力。 Munsell代码还保留了不同色度的感知色调。天蓝色和粉蓝色,孟塞尔指定相同的色调符号,例如5RP,对于具有正常视力的典型人来说将是相同的色调。更多关于脚注的内容。
除非指定了光源,否则CIE xyY,Lab *和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的公司。我想他们有大量与他们销售的彩色芯片相关的数据。我知道他们发布的唯一数字是他们的"Color Checker"卡上的一小组颜色的D50 Lab和D65 sRGB数字。我根据旧的注释数据编写了一个插补器。它几乎完全同意Color Checker卡的数字。我很遗憾地告诉我,到目前为止,我只编写了转换的代码,与OP请求的方向相反(一年前,我输入此内容)。它从sRGB到Munsell。我点击一个图像,程序显示所点击区域的sRGB和Munsell符号。我把它用于油画。
脚注:CIE有一个类似于Munsell的标准。它被称为LCh下标a,b。它是极坐标中的Lab *。色调是度数。色度数约为Munsell HVC中C的5倍。但LCh有其问题。如果您曾经使用照片编辑器来提升天空的生动性,只看到蓝色变成紫色,程序可能正在使用LCh。当我开始编写程序时,我没有意识到Bruce Lindloom完成了与我正在做的工作相似的工作。当我完成项目时,His web site对我来说非常宝贵。他设计了一个他称之为UPLab的空间,这是LCh整理出来与Munsell对齐。在我发现Linbloom先生的网站之前,我已经重新发明了LCh和(基本上)UPLab,但他对这个主题的了解远远超过我的。
Colour,我们的开源Python色彩科学包允许执行该转换。
基于Centore(2012)方法的以下两个定义在Munsell Renotation System和CIE xyY 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 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
为了完整性,这里是我的页面的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
有一个免费的R包munsell
将(除其他外)将Munsell代码转换为RGB:
R> library(munsell)
R> mnsl2hex("5PB 5/10")
[1] "#3B75BB"
我在这里找到了一个页面:munsell-to-rgb.blogspot.com似乎正在完成你所追求的目标。目前似乎尚未完成,但博客的所有者计划尽可能多地使用Munsell-to-RGB转换来更新它(并且他接受了请求!)。
令人惊讶的是,为这些颜色系统找到可访问的转换表是多么困难;希望这将是我们的答案! :d
我迟到了,但我找到了另一个可能对这个主题有用的资源。
“Munsell色彩科学实验室”的某个人从Munsell挖出了1943年的数据,这些数据全部基于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)&"> </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)&"> </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)&"> </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)&"> </td> </tr> "
</table>
该表需要从A2到A1626开始的每一行,以及其他每一行。
我希望这有帮助。
尽管有这篇老帖,为了更新史蒂夫的答案,这里是RIT的Munsell数据库的“更正”链接:
https://www.rit.edu/cos/colorscience/rc_munsell_renotation.php
并且直接链接到sRGB的电子表格转换了“真实”Munsell颜色的值:
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值。
旁注:为清楚起见,我想提一下,尽管可以使用算法/矩阵合理地完成某些颜色空间或颜色模型变换,但特别是当从给定颜色模型的测量数据创建LUT时,3D LUT是首选空间,映射某些模型中固有的许多非线性。
一个极端的例子是计算机显示器上的sRGB图像与将图像打印到纸张上的图像,并显示在坐在报亭上的杂志的封面上,该报刊亭用荧光灯照亮。这需要3D LUT才能实现精确转换!
在故事片行业(我主要工作),我们在整个图像流水线中使用3D LUT,不仅用于转换/转换,还用于“查看”和应用/模拟“外观”。例如,拍摄用数码相机拍摄的图像,并将特定胶片的LUT应用于该图像,使其显示为胶片。