HSV色彩空间

简介:

转自原文 HSV色彩空间

 


理解HSV色彩空间:


     HSV颜色模式是除了RGB颜色模式之外的另一种流行的颜色模式,RGB被广泛运用于计算机中,而HSV则用在电视显示方面。它更符合人们对颜色的描述(什么颜色(H),深浅度如何(S),亮度如何(V))。其实在电视机上菜单中的饱和度就是S,亮度就是V。
     H:色相,色度,色彩,也就是我们平时说的颜色。如红,黄,洋红等。在HSV模型中,用度数描述,其中红色对于0度,绿色对于120度,蓝色对应240度。
     S:饱和度,色彩的深浅度(0-100%) 
     V: 色调,纯度,色彩的亮度(0-100%) 

   为了便于理解,下文均称H为色彩,S为深浅度,V为亮度。关于色相,色调,饱和度等概念的更深入解释可参见《Visual C++数字图像处理开发入门与编程实践》左飞著 第三章

     HSV色彩空间模型:
               
          模型1                                    模型2
     注:在模型2中:
            H是色彩点在对应圆形切面上与红色半径(对于H=0度)所形成的圆心角。
            V是色彩点所在圆形切面到圆锥顶点的距离。在顶面上V=1 顶点V=0
            S是色彩点到所在圆形切面圆心的距离与该圆半径的比例值,在圆锥表面上S=1,在圆心处S=0

关键点:
     当S=1 V=1时,H所代表的任何颜色被称为纯色;
     当S=0时,颜色最浅,最浅被描述为灰色(灰色也有亮度,黑色和白色也属于灰色),灰色的亮度由V决定,此时H无意义;
     当V=0时,颜色最暗,最暗被描述为黑色,因此此时H(无论什么颜色最暗都为黑色)和S(无论什么深浅的颜色最暗都为黑色)均无意义。
     下面是当H=0度 即为红色时,S和V组成的平面:
     
     在这张图中,S沿横轴从左到右0-1增长 V沿纵轴由下到上0-1增长
     可以看到,当S=0,即矩形左边的竖线边缘处,呈不同深浅的灰色
               当V=0,即矩形下班的横线边缘处,呈黑色
               当S=0   V=1时,此时颜色最亮,但也最浅。也就是矩形的左上角,呈白色。
               当S=1(S=0) V=0时,颜色最深(最浅),但最暗,均体现为黑色
               当S=1 V=1时,在矩形的右上角,就是纯色的红色,也就是我们常用的RGB(255, 0, 0)
     

HSV和RGB的关系:


在HSV中:
     1.亮度V就是RGB值中最大的那个值进行归一化。也就是说 V = max(R, G, B)/255.0f;
          从这一点我们可以推出:
               1.纯色(S=1 V=1)的RGB值中必定至少有一个255,因为纯色V=1,即max(R, G, B)=255。同时RGB值也不可能有3个255,因为3个255为白色,前面我们提到,白色为对于任何色彩H,V=1而S=0时的产物。而V=1 S=0并不是纯色。
               2.这个公式也侧面说明了当V=0时,max(R, G, B)=0,也就是R=G=B=0,即为黑色。
     2.深浅度S是RGB中最大值和最小值的差值与最大值的比值。设RGBMax=max(R,G,B) RGBMin=min(R,G,B) 那么S = (RGBMax-RGBMin)/(float)RGBMax    
          从这个公式我们可以推导:
               1.纯色(S=1 V=1)的RGB值中必定有一个0,因为当S=1,RGBMax-RGBMin==RGBMax,即RGBMin=0。这也说明了白色(RGB(255,255,255)并不是纯色)。
               2.当S=0时,RGBMax-RGBMin==0,即R==G==B,此时颜色呈不同程度的灰色(由白到黑,亮度由V而定,因为V=RGBMax*100/255,V越高,RGBMax==R==G==B就越高,灰色越亮))。这也可以从上面给出的矩形图看出。

     3.色彩H的对应RGB值也可以出来了,纯色的范围为:RGB(255,0,×), RGB(255,×,0),RGB(0,255,×),RGB(×,255,0,RGB(×,0,255),RGB(0,×,255)。×代表(0,255)中的任意值。这六大部分组成一个圈形色带。具体转换见下节。

再结合上面的矩形图分析一下;
1.对于上面矩形中每一条横线(H和V不变,S从左到右0-1),如果用颜色拾取器(如最后一节提供的示例ColorPicker)观察,可以发现,从右到左,在同一纵坐标上,RGB的变化是从RGB(r,g,b)到RGB(max(r,g,b),max(r,g,b),max(r,g,b))逐渐逼近。最终在最左边的点呈灰色(R=G=B),灰色的亮度由max(r,g,b)决定。
2.对于矩形中每一条竖线(H和S不变,V从下到上0-1),从上到下,RGB值的变化由RGB(r,g,b)逐渐趋近于RGB(0,0,0),最终变为黑色。这也为我们绘制如上的SV调色板提供了思路。

HSV和RGB之间的转换:

   
  RGB->HSV:
    
     S = ((max-min)/max)*100/255

     V = max*100/255

  HSV->RGB:

     
               

一个简单实例:

     
     参考《Visual C++数字图像处理开发入门与编程实践》左飞著 第三章实例 ColorPicker
     界面:
     
     功能:
          可进行HSV和RGB的转换
          左方调色板可对任意RGB颜色或H值进行S和V值的渐变调色
          中下方的预览框会对选取颜色进行实时显示
          可通过点击调色板某处进行颜色选取
          可在屏幕任意位置按A键捕获当前鼠标所在位置的颜色信息并实时显示颜色信息

     实例代码免费下载(VS 2012 Build Passed. 2017.6.14 1354): ColorPicker.rar
 
 
 
 
没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。








    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/7008460.html ,如需转载请自行联系原作者




相关文章
[记录]Obs源码分析《一》obs编译
[记录]Obs源码分析《一》obs编译
293 0
|
3月前
|
人工智能 自然语言处理 测试技术
AI时代,Apipost和Apifox如何利用AI技术赋能API研发测试管理所需?
在数字化转型加速背景下,API成为企业互联互通的关键。Apipost与Apifox作为主流工具,在AI赋能方面差异显著。Apipost通过智能参数命名、接口设计自动化、测试用例生成、断言自动化等功能大幅提升研发效率和质量,尤其适合中大型企业及复杂业务场景。相比之下,Apifox功能依赖手动操作较多,适用性更偏向初创或小型项目。随着AI技术发展,Apipost展现出更强的智能化与前瞻性优势,为企业提供高效、稳定的API管理解决方案,助力其在竞争激烈的市场中实现创新突破。
98 0
|
11月前
|
人工智能 API Apache
推荐3款开源、美观且免费的WinForm UI控件库
推荐3款开源、美观且免费的WinForm UI控件库
1870 6
|
存储 数据可视化 大数据
基于Python Django的大数据招聘数据分析系统,包括数据大屏和后台管理
本文介绍了一个基于Python Django框架开发的大数据招聘数据分析系统,该系统具备后台管理功能和数据大屏展示,利用大数据技术收集和分析招聘市场趋势,帮助企业和招聘机构提高招聘效率和质量。
395 3
|
机器学习/深度学习 算法 Python
LSTM(长短期记忆)网络的算法介绍及数学推导
LSTM(长短期记忆)网络的算法介绍及数学推导
397 0
|
JavaScript 测试技术
Vue开发项目过程中环境变量的配置(vite、vue3、ts)
Vue开发项目过程中环境变量的配置(vite、vue3、ts)
299 0
|
Linux 开发者
Linux的诞生:Linus Torvalds的“惊天一敲”与Linux内核的“首秀”
在科技界璀璨星辰中,Linus Torvalds以一次“惊天一敲”悄然点燃了革命之火——Linux就此诞生。1991年,不满现状的Linus决定创造更好的操作系统,这一敲不仅开启了个人传奇,更奏响了技术革新的序章。他将Linux内核低调发布网络,随即吸引了全球开发者的目光与贡献,使之迅速成长为开源世界的巨星。Linus的故事告诉我们:伟大创举常源于微小想法,也许下一个改变世界的“一敲”就出自你手。
478 1
|
监控 安全 算法
yolov8火灾报警检测和烟雾检测
yolov8火灾报警检测和烟雾检测
|
存储 固态存储 Linux
常见的文件系统格式
一、Windows 常见文件系统格式 1、FAT32格式 1、属于Windows平台的传统文件格式 2、兼容性很好 3、但它不支持4GB以上的文件 2、NTFS格式 1、属于Windows平台应用最广泛的文件格式 2、能够支持大容量文件和超大分区 3、集合了很多高级的技术,其中包括长文件名、压缩分区、数据保护、恢复等 4、它会减短ROM的寿命 注: 1、内存,用途又分为两大类,RAM和ROM 2、RAM就是运行内存;ROM就是存储,又叫闪存; 3、RAM:可以开启多个APP软件而不会卡顿,能够后台进行多个程序的运行 4、ROM:例如视频,图片等文件就是存储里面的;安装,读取等都和它有很大的关系
712 1
|
机器学习/深度学习 数据可视化 TensorFlow
基于tensorflow深度学习的猫狗分类识别
基于tensorflow深度学习的猫狗分类识别
578 1