首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从HSV中提取色度/相对色度

从HSV中提取色度/相对色度
EN

Stack Overflow用户
提问于 2014-04-10 08:47:40
回答 2查看 783关注 0票数 8

我试图弄清楚如何从HSV (替代RGB)中获得色度。问题是,我几乎不知道什么是色度。根据网络上可用的小信息,它通常被称为“相对色度”,即色调和饱和度的结合。

来自http://www.huevaluechroma.com/012.php

相对于假定最大值的色度概念的另一个术语是来自瑞典NCS系统的色度。

我确实有一个RGB,我已经转换为HSV在PHP。我希望有人能在这个问题上提供他们的专门知识,因为似乎有非常有限的资料记录在案。我需要它来验证NCS-代码。

色度计算到目前为止:

代码语言:javascript
复制
   //$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。

EN

回答 2

Stack Overflow用户

发布于 2014-04-15 18:37:24

色度是芒塞尔系统的第三个属性,它超越了颜色和亮度。

色度通常定义该色调的颜色:即颜色的属性,它表示颜色与同一亮度的灰色的偏离程度。从这里颜色空间及其部门的Rolf G. Kuehni (充分可在谷歌图书)

颜色和饱和度是相同的两种颜色具有相同的色调和亮度。无论亮度或亮度如何,饱和度都保持不变。另一方面,色度随着亮度的增加而增加。

给出了色的编码这里公式

除非你考虑色域,否则Chroma仍然是一个开放的数量-范围从0到无穷大。

NCS 色度是以百分比指定的色度,其中100%对应于某个有限上限,见ISSN-03912051。您需要选择这个有限值,才能在计算系统中获得一个良好的工作动态范围。

相信能帮上忙。

票数 4
EN

Stack Overflow用户

发布于 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值如下:

代码语言:javascript
复制
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颜色的最大值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22983064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档