计算机中的颜色——纯色、色相色
来源:互联网 发布:java图书馆里系统 编辑:程序博客网 时间:2024/05/16 06:47
前一篇文章介绍了颜色的HSV表示方法,其中H表示色相,亦即表示在色相环上的位置。S表示颜色的纯度,当S=1时,表示颜色最纯,当S=0时,表示颜色没有纯度,此时表示为灰度色。V表示颜色的亮度,当V=1,颜色最亮,当V=0时,亮度最低,此时表示颜色为黑色。
综上所述,当一个颜色(H,S,V)中的S=1,V=1时,此时该颜色表示色相环上的一种颜色。我们定义该颜色为纯色或者是色相色。
由于每种颜色都有H分量,因此任意一种颜色都和一种纯色对应,他们之间的区别是S和V值不一样,而H值是一样的。同时,这种对应关系是一种多对一的关系,也就是说,只要几种颜色的H值相同,则他们对应的是同一种纯色。
纯色有什么特点呢?首先纯色也是一种颜色,因此也可以用RGB表示,同时还可以用HSV表示。通过前面的定义可知,用HSV表示的时候,S=1,V=1。我们先看前文中的转化公示:
S=1-Min/Max
V=Max/255
注:前文中的公式RGB的分量用[0,1]表示,本文已经转化为[0,255],故有所差异
若V=1,则Max=255
若S=1,则Min=0
由此可见,一个颜色是否是纯色的充要条件是三个颜色分量中,最大分量为255,最小分量为0。
前面提到,每种颜色都和一种纯色相对应的关系。那么他们之间一定有一个快速计算的过程,实际上,前文中的计算过程虽明了但复杂了。
已知纯色(R,G,B)和分量S,V,如何计算颜色(R’,G’,B’)
通过推导,有下面的公式:
R’=(R×S+255×(1-S))×V
G’=(G×S+255×(1-S))×V
B’=(B×S+255×(1-S))×V
已知颜色(R’,G’,B’),如何计算纯色(R,G,B)
通过推导,有下面公式:
Max为三个分量的最大值,Min为三个分量的最小值
若Max=Min,三个分量一样,此时表示灰度值,直接定义纯色(255,0,0),S=0,V=Max
若Max≠Min,
R=255×(R’-Min)/(Max-Min)
G=255×(G’-Min)/(Max-Min)
B=255×(B’-Min)/(Max-Min)
此时计算出的三个分量必定一个是255,一个是0。
同一个色相的颜色有着一定的相关性,而通过纯色计算得出相关的颜色,能加快计算速度,简化计算过程。
- 计算机中的颜色——纯色、色相色
- 计算机中的颜色IV——纯色、色相色
- 计算机中的颜色——从色相值到纯色的快速计算
- 计算机中的颜色VI——从色相值到纯色的快速计算
- 计算机中的颜色——快速计算颜色的色相值
- 计算机中的颜色V——快速计算颜色的色相值
- 计算机中的颜色VII——快速计算纯色的偏转
- 计算机中的颜色——颜色概述
- 计算机中的颜色I——颜色概述
- 计算机中的颜色——VB2005中的Color结构
- 计算机中的颜色II——VB2005中的Color结构
- 计算机中的颜色——HSV表示方法
- 计算机中的颜色III——HSV表示方法
- 计算机中的颜色表示法——RGB
- ImageView设置纯色图片颜色
- 纯色图片颜色渐变动画
- 计算机中的颜色VIII——快速计算颜色的偏转
- 颜色在计算机中的表示
- CPU缓存的工作原理
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之27---BREW 应用定价
- 无所事事
- VC++中进程间相互通信的十一种方法
- 在solaris10上安装jdk+tomcat
- 计算机中的颜色——纯色、色相色
- _stdcall _cdecl fastcall 调用方式详解
- printf谈可变参数函数的实现
- Flex中的内部类
- xheditor HTML编辑器简单使用
- 双缓冲
- solaris和linux命令对比
- After end of result set
- IT 无止境