1. 程式人生 > >opencv HSV 顏色模型(H通道取值 && CV_BGR2HSV_FULL)

opencv HSV 顏色模型(H通道取值 && CV_BGR2HSV_FULL)

出處: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  三個通道的 直方圖分佈如下: