写了一段有关颜色的文章,回顾过去几篇文章,做一个阶段性总结。利用前几篇文章的心得,推导出快速转换RGB模式与HSV模式的公式。

  RGB模式:用R、G、B三个颜色的分量来表示颜色,分量的取值范围为[0,255],整数型

  HSV模式:用H、S、V三个分量来表示颜色。

        分量H:表示颜色的色相,取值[0,360),整数型

        分量S:表示颜色的纯度,取值[0,1),浮点数型

        分量V:表示颜色的亮度,取值[0,1),浮点数型

  以上内容,详细请参看“计算机中的颜色III——HSV表示方法”

  1、RGB到HSV

    颜色(R,G,B)如何快速转化到(H,S,V)

    参看文章“计算机中的颜色IV——纯色、色相色”,“计算机中的颜色V——快速计算颜色的色相值”

    令MAX为R、G、B三个分量的最大值;MIN为三个分量的最小值

    若MAX=MIN,则

      H=0

      S=0

      V=MAX/255

    若MAX≠MIN

      当G≥B时

        H=(Max-R’+G’-Min+B’-Min)/(Max-Min)×60

        S=1-MIN/MAX

        V=MAX/255

      当G<B时

        H=360-(Max-R’+G’-Min+B’-Min)/(Max-Min)×60

        S=1-MIN/MAX

        V=MAX/255

  2、HSV到RGB

    颜色(H,S,V)如何快速转化到(R,G,B)

    参看文章“计算机中的颜色VIII——快速计算颜色的偏转”

    颜色(H,S,V)可以看成颜色(0,S,V)顺时针偏转H后得到颜色,其实,就是获得该颜色MAX与MIN分量

    MAX=V×255=255V

    若S=0,说明MAX=MIN,此时表示灰度色

      R=MAX

      G=MAX

      B=MAX

    若S>0,则令ρ=MAX-MIN=255SV,MIN=MAX-ρ

      若H>180,令H’=360-H;反之,令H’=H

      令λ=H’/60×ρ

      R=2ρ-λ;若R<0,则R=0;若R>ρ,则R=ρ;

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

      B=λ-2ρ;若B<0;则B=0;

      若H>180,则交换G和B分量的值;反之,不交换。最后

      R=R+MIN

      G=G+MIN

      B=B+MIN

  总述,以上是我推导的HSV和RGB的互相转化公式,比许多网上介绍的原来的公式来的简单。参看“计算机中的颜色III——HSV表示方法”。

HSV RGB颜色空间互转相关推荐

  1. RGB颜色空间、色调、饱和度、亮度、HSV颜色空间详解

    一.概述 本文章会详细的介绍RGB颜色空间与RGB三色中色调.饱和度.亮度之间的关系,最后会介绍HSV颜色空间! 一.RGB颜色空间 1. 起源 RGB三原色起源于上世纪初1809年Thomas Yo ...

  2. Python实现RGB和Lab颜色空间互转

    Python实现RGB和Lab颜色空间互转 https://github.com/rubund/debian-home-assistant/blob/1a3e8f7e4b9ddec60a4380e14 ...

  3. 使用Opencv将RGB颜色空间转换到HSV颜色空间/灰度图

    一. 使用cvCvtColor函数将RGB颜色空间转换到HSV颜色空间 所需函数: 1.cvCvtColor 函数功能:颜色空间转换 函数原型: void cvCvtColor( const CvAr ...

  4. HSV颜色空间和RGB颜色空间相互转换C语言实现

    HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model).这个模型中颜色的参数 ...

  5. RGB、Lab、YUV、HSI、HSV等颜色空间的区别

    文章主要来源于百度文库:http://wenku.baidu.com/view/f38c04e69b89680203d82513.html RGB颜色空间 RGB(red,green,blue)颜色空 ...

  6. 【主色提取】HSV 颜色空间与 RGB 颜色空间互相转化的公式和代码

    系列文章目录 第二章 主色提取之颜色空间转化 目录 系列文章目录 文章目录 前言 一.HSV 和 RGB 颜色空间 二.颜色转化 1. RGB to HSV 2. HSV to RGB 三. 完整代码 ...

  7. RGB颜色空间转换HSV颜色空间 RGB2HSV算法

    这是最常用的RGB到HSV例程,还有一个额外的小优化(向除数添加1e-20f以避免需要将除法除以零): 讲解:--------------action---------------- 直接看这段代码很 ...

  8. 数字图像处理与Python实现-颜色空间转换-RGB颜色空间与HSV颜色空间转换

    RGB颜色空间与HSV颜色空间转换 RGB颜色空间与HSV颜色空间转换 1. 前言 2. RGB颜色空间与HSV颜色空间转换描述 3. 代码实现 1. 前言 HSV(Hue, Saturation, ...

  9. HSV(HSL)颜色空间及其应用

    from:http://nkwavelet.blog.163.com/blog/static/22775603820147851726816/ [摘要] 本文首先阐述HSV 和 HSL颜色模式的基本特 ...

最新文章

  1. matlab中gui关闭图像直方图,07年写的,直方图 matlab gui
  2. mybatis中mysql流式读取_MyBatis读取大量数据(流式读取)
  3. 实现canvas连线
  4. linux mail命令查看邮件/mail控制台
  5. 智伴机器人广西团队_实力加冕 | 柳工喜获全国机器人焊接竞赛三连冠
  6. “奔三”了,程序员,你该怎么选择未来的路?
  7. html写个用户协议,五分钟学会HTML5的WebSocket协议
  8. 方法的重载 c# 1613699221
  9. Java实现创建二维码操作
  10. 迅雷发布了自主研发的TCFS协议,有意转型区块链开发的必看
  11. 大数据究竟是什么?一句话让你认识并读懂大数据
  12. android studio module build,踩坑将一个AndroidStudio项目变成一个module引入到自己的项目中...
  13. 11计算机专业vb试题答案,西华师范大学计算机VB试题及答案11
  14. 一文掌握Java基础知识点(思维导图)
  15. qq邮箱收件服务器用户名密码,iphone6/6s+设置QQ邮箱时显示用户名或密码错误的解决方法介绍...
  16. Cisco-win10安装ezv_p_n客户端过程介绍与常见问题汇总
  17. serial.serialutil.SerialException: could not open port 'COM1': PermissionError(13, '拒绝访问。', None, 5)
  18. 数仓 元数据管理 Atlas 的使用
  19. Mac OS X Mavericks 迅雷下载地址 ( mac os x 10.9 )
  20. AIDE-Libgdx导入Box2d

热门文章

  1. leetcode算法题--最长等差数列★
  2. 统计学习基础:数据挖掘、推理和预测_数据挖掘——智能财务进阶之梯(含视频、PPT)...
  3. 开源Web应用中最常见漏洞是XSS和SQLI漏洞
  4. 新的 FreeBSD 核心团队选举结果出炉
  5. Storybord切换
  6. 常用事件方法及技巧(二) -- MouseEvent(鼠标事件)
  7. NFS挂载失败(Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0))
  8. 伽卡他卡电子教室 百度百科_创建百度百科的好处
  9. 廖雪峰Java11多线程编程-3高级concurrent包-4Concurrent集合
  10. hibernate主配置文件中指定session与当前线程绑定