计算机中的颜色IV——纯色、色相色

  前一篇文章介绍了颜色的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。

 

  同一个色相的颜色有着一定的相关性,而通过纯色计算得出相关的颜色,能加快计算速度,简化计算过程。



作者: 万仓一黍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
鱼鱼抓:主要功能 1、抓取屏幕上某个位置坐标颜色,可以进行颜色进制转换和RGB、HSL分量显示; 2、抓取鼠标的特征码(和按键精灵抓鼠标特征码一模一样); 3、抓取窗口句柄(可以抓取特殊窗口的句柄)。 鱼鱼抓:升级说明 ================================================== 通过全球38家杀毒软件最顶级严格检测,无病毒无误报! http://www.virscan.org/report/b359d7acad6efda0757b5b4f01017c98.html 使用说明: -------------------------------------- 标题栏上2个功能键: |- 1、窗口最前面 |- 2、收缩/展开窗口 特别提示: -------------------------------------- |- ? vista系统请以管理员身份运行!! 鱼鱼抓v3.00.0925正式版 2009.09.25. 更新 -------------------------------------- |- + 增加可存储10个坐标点颜色 |- + 增加可显示4个鼠标特征码 |- + 增加可设置开始起点[Qx,Qy]坐标 |- + 增加xy坐标、RGB分量、HSL分量复制和粘贴 |- ! 合并xy偏移量偏移抓点设置 |- ! 修改RGB、HSL分量显示值的颜色 鱼鱼抓v2.40.0920正式版 2009.09.20. 更新 -------------------------------------- |- + 增加抓句柄(三种)功能 |- + 句柄拾取:拖动准心拾取鼠标位置下的窗口句柄 |- + 句柄搜索:搜索指定模糊窗口标题句柄 |- + 句柄遍历:遍历所有窗口句柄 |- ? 在遍历所有窗口句柄列表双击可以复制选行内容! 鱼鱼抓v2.10.0909正式版 2009.09.09. 更新 -------------------------------------- |- + 增加颜色H、S、L分量显示 |- + 增加抓鼠标特征码(附加一种原创方式)跟按键精灵抓鼠标特征一模一样,放心使用!! |- + 增加用方向键控制鼠标移动 |- ! 修改一些BUG
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值