之前知道,利用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 三個通道的 直方圖分布如下:
--------------------------------------分割線 --------------------------------------
Ubuntu Linux下安裝OpenCV2.4.1所需包 http://www.linuxidc.com/Linux/2012-08/68184.htm
Ubuntu 12.04 安裝 OpenCV2.4.2 http://www.linuxidc.com/Linux/2012-09/70158.htm
CentOS下OpenCV無法讀取視頻文件 http://www.linuxidc.com/Linux/2011-07/39295.htm
Ubuntu 12.04下安裝OpenCV 2.4.5總結 http://www.linuxidc.com/Linux/2013-06/86704.htm
Ubuntu 10.04中安裝OpenCv2.1九步曲 http://www.linuxidc.com/Linux/2010-09/28678.htm
基於QT和OpenCV的人臉識別系統 http://www.linuxidc.com/Linux/2011-11/47806.htm
--------------------------------------分割線 --------------------------------------
OpenCV的詳細介紹:請點這裡
OpenCV的下載地址:請點這裡