出處:http://blog.csdn.net/timidsmile/article/details/17297811
之前知道,
利用opencv把RGB圖片像HSV顏色空間轉變的時候,
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通道圖像了。
in fact, 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 三個通道的 直方圖分佈如下: