我试图弄清楚如何从HSV (替代RGB)中获得色度。问题是,我几乎不知道什么是色度。根据网络上可用的小信息,它通常被称为“相对色度”,即色调和饱和度的结合。
来自http://www.huevaluechroma.com/012.php
相对于假定最大值的色度概念的另一个术语是来自瑞典NCS系统的色度。
我确实有一个RGB,我已经转换为HSV在PHP。我希望有人能在这个问题上提供他们的专门知识,因为似乎有非常有限的资料记录在案。我需要它来验证NCS-代码。
色度计算到目前为止:
//$hsv is array(h, s, v), maximum considered to be 10000
$chroma = $hsv[1] * $hsv[2];
$chromaticness = $chroma / 10000;例如,颜色S 2065-B (#0073B0)给我69%的色度使用上面的计算,当它应该是65%。此外,颜色S 0580-Y (#FECB00 00)给我99%,当它应该是80%?
我在这些例子中看到的HSV是:
#0073B0 { 'H‘=> 200.79545454545,'S’=> 100,'V‘=> 69.019607843137 }
#FECB00 00{ 'H‘=> 47.952755905512,'S’=> 100,'V‘=> 99.607843137255 }
这种解决方案在任何编程语言中都是受欢迎的,但是我正在用PHP编写代码,因此很可能会将其转换为PHP。
发布于 2014-04-15 18:37:24
色度是芒塞尔系统的第三个属性,它超越了颜色和亮度。
色度通常定义该色调的颜色:即颜色的属性,它表示颜色与同一亮度的灰色的偏离程度。从这里颜色空间及其部门的Rolf G. Kuehni (充分可在谷歌图书)
颜色和饱和度是相同的两种颜色具有相同的色调和亮度。无论亮度或亮度如何,饱和度都保持不变。另一方面,色度随着亮度的增加而增加。
给出了色的编码这里公式
除非你考虑色域,否则Chroma仍然是一个开放的数量-范围从0到无穷大。
NCS 色度是以百分比指定的色度,其中100%对应于某个有限上限,见ISSN-03912051。您需要选择这个有限值,才能在计算系统中获得一个良好的工作动态范围。
相信能帮上忙。
发布于 2014-04-20 05:09:50
我认为你的问题是与以下事实有关,即NCS系统中的四种基本颜色在HSV系统中并不都有100%的值。
例如,在NCS系统中,在NCS黄色和NCS红色之间的HSV弧中,一个完全饱和和完全明亮的橙色将是一半。NCS黄的HSV值为100%,而NCS红的HSV值仅为77%,因此该橙的HSV值约为88.5%。尽管如此,NCS色度仍然是100%,即使你从HSV中计算出它的色度值为88.5%。(还有一个问题是,在HSV系统中,NCS红色只有99%饱和,但我忽略了这一点。)
NCS基色的HSV值如下:
white 100%
black 0%
green 63%
red 77%
yellow 100%
blue 74%来源:系统
我认为你需要做的是,在计算了NCS GY/GB/RY/RB " hue“之后,根据两个相关的NCS基色计算出该NCS色调的最大HSV值,然后计算NCS色度值作为最大HSV值的一部分(即,除以该最大值,如果我们处理的是0到1之间的数字)。因此,我们可以给出一个饱和Y50R橙,其HSV值为22.125%,色度为25%,因为22.125%是Y50R橙最大值88.5%的25%。
请注意,这意味着您必须处理RGB/HSV颜色,这些颜色超出NCS颜色的最大值。在这些情况下,我可能只是将HSV值缩回到相同色调的NCS颜色的最大值。
https://stackoverflow.com/questions/22983064
复制相似问题