在上一文中,介绍了“如何快速计算颜色的色相值”,本文介绍从色相值到纯色的计算过程。之前已经介绍,色相值和纯色有着一一对应的关系。先看看传统的计算方法:

   

  

  从图中计算的过程来看,还是比较繁琐的,再看看之前的纯色色相分布图。

  

  从图中找到规律,在图中的右半部阴影部分,各个分量的变化如下所示:

    0-60:R:255-》255;G:0-》255;B:0-》0;

    60-120:R:255-》0;G:255-》255;B:0-》0;

    120-180:R:0-》0;G:255-》255;B:0-》255;

  在图中的左半空白部分,以到红色的夹角为算,各个分量的变化如下所示:

    0-60:R:255-》255;G:0-》0;B:0-》255;

    60-120:R:255-》0;G:0-》0;B:255-》255;

    120-180:R:0-》0;G:0-》255;B:255-》255;

  仔细观察上面的两个变化,可以发现,R的变化是一致的,而G、B分量的变化正好左右对称。因此,只要能写出右边的公式,将G、B分量值互换一下,就得到左边的公式了

  下面把右边的计算公式,详细描述一下:

  取纯色和红色的夹角,右边的就是纯色的色相值θ

  令λ=θ/60×255

    R=510-λ;若R<0,则R=0;若R>255,则R=255;

    G=λ;若G>255,则G=255;

    B=λ-510;若B<0;则B=0;

  如此计算出来的纯色(R,G,B)就是该色相值对应的纯色。

    类似的,把公式稍作变换,就是左边的公式:

  取纯色和红色的夹角,左边的是360-θ

    令λ=θ/60×255

    R=510-λ;若R<0,则R=0;若R>255,则R=255;

    G=λ-510;若G<0;则G=0;

    B=λ;若B>255,则B=255;

  综上两个公式,就是从色相值到纯色的快速计算。

转载于:https://www.cnblogs.com/grenet/archive/2009/12/15/1624243.html

计算机中的颜色VI——从色相值到纯色的快速计算相关推荐

  1. 计算机中的颜色XIII——颜色转换的快速计算公式

    本文的公式的基础都是在前文的基础上的.详情请参看前文: 计算机中的颜色I--颜色概述 计算机中的颜色II--VB2005中的Color结构 计算机中的颜色III--HSV表示方法 计算机中的颜色IV- ...

  2. C++:执行第 K 个值和权重的快速计算 N点高斯-勒让德正交规则(附完整源码)

    C++:执行第 K 个值和权重的快速计算 N点高斯-勒让德正交规则 test.hpp test.cpp test.hpp #ifndef FASTGL_H #define FASTGL_H#inclu ...

  3. 计算机中的颜色——快速计算颜色的色相值

    在之前的文章中,给定一个颜色,它的色相值计算如下: 由公式可知,计算色相时要分为六种情况,计算略显复杂.有没有简单的计算方法呢?来看看下面这个图 上面这个图,表示纯色的色相分布,把纯色分为六个部分.仔 ...

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

    前一篇文章介绍了颜色的HSV表示方法,其中H表示色相,亦即表示在色相环上的位置.S表示颜色的纯度,当S=1时,表示颜色最纯,当S=0时,表示颜色没有纯度,此时表示为灰度色.V表示颜色的亮度,当V=1, ...

  5. 计算机中1字节无符号整数的取值范围是,一个字节的无符号数能表达的数值范围是0----255,...

    0既不是正数也不是负数,而是正数和负数的分界点.因为0不是正数,2^8=256  从0-256刚好256个数. 两个字节代表可以储存的最大数为2^16=65536,两个字节若不考虑符号问题,那么可以储 ...

  6. tan0.75等于多少度用计算机怎么算,75度的正弦值是多少?怎么计算?

    75度角的正弦值是(√2+√6)/4.正弦值是在直角三角形中,对边的长比上斜边的长的值.任意锐角的正弦值等于它的余角的余弦值,任意锐角的余弦值等于它的余角的正弦值.通常用符号sin表示.正弦sinθ也 ...

  7. python如何实现图像中特定颜色的种类识别及特定颜色的占比代码

    使用Python实现图像中特定颜色的种类识别及特定颜色的占比代码,首先可以使用OpenCV库对图像进行处理,然后使用特定的函数来识别图像中特定颜色的种类,最后使用统计学方法来计算特定颜色在图像中的占比 ...

  8. 颜色在计算机中的存储和显示详解

    前言 颜色是通过眼.脑和我们生活经验所产生的对光和视觉感受,我们肉眼所见到的光线,是由波长范围很窄的电磁波产生的,不同的波长的电磁波表现为为不同的颜色,对色彩的辨认是肉眼受到电磁波辐射能刺激后所引起的 ...

  9. 如何在OpenCV中为InRange阈值选择颜色的最佳HSV值

    如何在OpenCV中为InRange阈值选择颜色的最佳HSV值 1. 效果图 2. 源码 参考 之前的博客介绍了如何使用Python,OpenCV通过HSV颜色空间转换检测对象,并进行轨迹追踪.怎么选 ...

  10. java byte 正数最大_关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)...

    先看一段推理 +124:0111 1100 -124:1000 0100 +125:0111 1101 -125:1000 0011 +126:0111 1110 -126:1000 0010 +12 ...

最新文章

  1. CFRunLoopRef 的内部逻辑(向 ibireme学习)
  2. 什么是token?精简摘抄·~
  3. xcode升级之后,VVDocument失效的解决办法
  4. fieldset在ie8下的margin\padding bug规避
  5. 解决sdk manager无法更新的问题
  6. 我的程序员之路:上帝的苹果
  7. 山东工业职业学院计算机老师田彦,学院举办2019年第二期新教师岗前培训班
  8. linux history nginx,vue-router History 本地开发环境和nginx配置
  9. 基本属性---Linux
  10. linux prelink.cache,Linux基础操作
  11. 有序集合使用与内部实现原理
  12. 不停止nginx服务的情况下替换nginx执行文件
  13. What is Freeview Play
  14. 寒冬中的一次优雅起舞
  15. 提取pdf文件文本:pdfparser与xpdf具体操作
  16. Python进阶(十)多进程multiprocessing和subprocess模块
  17. 共享茶室小程序都具备哪些功能?
  18. 单火开关和零火开关的区别
  19. 华为云服务之公有云架构
  20. Elite South Korean of an Elite Education(译文)

热门文章

  1. 黑马程序员-JavaAPI-17天-4(Arrays)
  2. 从C#开发人员到Windows Phone 7高级开发人员只需3周 – 序
  3. Java来做马里奥[0]—让精灵再次舞动
  4. ES常用DSL语句(kibana常用语句)
  5. cfda计算机管理化系统,计算机化系统清单
  6. asyncio 文件io高并发_请问这个 asyncio 异步访问页面怎么写可以更加快?
  7. python实验室公众号_区块链研究实验室 | 使用Python编写Tendermint应用程序
  8. 决策过程并举例_成本效益分析举例
  9. php curl exec 返回值,php curl_exec函数返回false的解决方法
  10. JedisCluster设置密码