opencv HSV 颜色模型(H通道取值 && CV_BGR2HSV_FULL与CV_BGR2HSV的区别)

北城以北 提交于 2019-12-16 17:41:08

利用opencv把RGB图片像HSV颜色空间转变(CV_BGR2HSV)的时候,

H通道的值范围为: 0-180

S: 0-255

V:0-255

利用直方图显示三个通道的时候,H通道都集中在前半部分,想让它取值范围扩大~~~~~~~

后来发现了   CV_BGR2HSV_FULL  ,

CV_BGR2HSV 在转换图像的时候是将 H / 2  --->  H ,我们知道图像中色相H的取值范围为 0-360 ,所以利用opencv转换之后得到的H的范围为 0-180

而   CV_BGR2HSV_FULL   实现的映射是 H * 255 / 360 --->H , 所以利用_FULL 这个转换得到的H通道图像的范围为 0-255

这两种方式都是opencv把[0-360] 的数据压缩到一个字节可以处理的数据。[ 所以这里说的图像的depth = 8, 刚好能表示的最大值是 255]


上面说的图像的 depth = 8, 如果你的图像 位深不是 8位,比如 32 位, 那么你就可以得到 [0, 360] 表示的 H通道图像了。


实际上, HSV颜色模型规定的各通道取值范围为:

H : 0-360     S:0-1   V: 0-1

可以利用 CV_BGR2HSV  得到的 H  S V 的  S V /255 转换得到。

对于同一幅图片:


采用CV_BGR2HSV得到的   h   s   v  三个通道的 直方图分布如下:




采用CV_BGR2HSV_FULL得到的   h   s   v  三个通道的 直方图分布如下:


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!