如何进行OpenCV中HSV颜色空间的分析


如何进行OpenCV中HSV颜色空间的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前言HSV是一种在人们生活中甚至更常用的颜色系统,在电视遥控器上、在画画的调色板中、在你用爱某艺视频调整亮度时都很常见,因为它更符合人们描述颜色的方式——是什么颜色、颜色有多深、颜色有多亮。H——Hue即色相,就是我们平时所说的红、绿,如果你分的更细的话可能还会有洋红、草绿等等;在HSV模型中,用度数来描述色相,其中红色对应0度,绿色对应120度,蓝色对应240度。
如上图是H=120时的S—V平面,S和V值分别从左至右、从下至上由0增大至1。我们可以发现其规律:在图片的左侧S值为0,呈现不同程度的灰色,由V值决定。在图片的下侧V值为0,呈现出黑色。在图片的右上角S和V值都为1,呈现出纯色,其RGB值为(0, 255, 0)。

因此对HSV我们的结论如下:当S=1 V=1时,H所代表的任何颜色被称为纯色;当S=0时,即饱和度为0,颜色最浅,最浅被描述为灰色(灰色也有亮度,黑色和白色也属于灰色),灰色的亮度由V决定,此时H无意义;当V=0时,颜色最暗,最暗被描述为黑色,因此此时H(无论什么颜色最暗都为黑色)和S(无论什么深浅的颜色最暗都为黑色)均无意义。RGB➡HSV
1. V = max(R, G, B)/255.0f——亮度V就是RGB值中最大的那个值进行归一化。推论: 纯色的RGB中肯定有一个是255。 香港云主机同时RGB值也不可能有3个255,因为3个255为白色,白色为对于任何色彩H,V=1而S=0时的产物。而V=1 S=0并不是纯色。同时如果V=0,那么RGB三者中的最大值是0,即GRB都为0,也就是说该像素是黑色。2. S = (max(R, G, B) – min(R, G, B))/(float)max(R, G, B)——饱和度S是RGB中最大值和最小值的差值与最大值的比值。推论:
纯色(S=1 V=1)的RGB值中必定有一个0,因为当S=1,max(R, G, B) – min(R, G, B) == max(R, G, B),即RGBMin=0。这也说明了白色(RGB(255,255,255)并不是纯色)。
当S=0时,RGBMax-RGBMin==0,即R==G==B,此时颜色呈不同程度的灰色(由白到黑,亮度由V而定,因为V=RGBMax*100/255,V越高,RGBMax==R==G==B就越高,灰色越亮))。这也可以从上面给出的矩形图看出。

因此对于纯色来说,RGB中必有一个255和一个0
公式换算:
HSV➡RGB
看完上述内容,你们掌握如何进行OpenCV中HSV颜色空间的分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注开发云行业资讯频道,感谢各位的阅读!

相关推荐: 将springboot jar应用打包成镜像并在docker运行成容器的方法

这篇文章主要介绍“将springboot jar应用打包成镜像并在docker运行成容器的方法”,在日常操作中,相信很多人在将springboot jar应用打包成镜像并在docker运行成容器的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 09/21 12:56
下一篇 09/21 12:56

相关推荐