cvCvtColor 顏色空間轉換函式

2021-06-04 21:22:41 字數 1203 閱讀 6805

cvcvtcolor(...),是opencv裡的顏色空間轉換函式,可以實現rgb顏色向hsv,hsi等顏色空間的轉換,也可以轉換為灰度影象。  引數

cv_bgr2gray是

rgb到

gray,  引數

cv_gray2bgr是

gray到rgb.

處理結果是彩色的,則轉灰色就是了:

void cvcvtcolor( const cvarr* src, cvarr* dst, int code );  src   輸入的

8-bit,

16-bit或

32-bit單倍精度浮點數影像。  

dst   輸出的

8-bit,

16-bit或

32-bit單倍精度浮點數影像。  code  色彩空間轉換的模式,該code來實現不同型別的顏色空間轉換。

比如cv_bgr2gray表示轉換為灰度圖,cv_bgr2hsv將從rgb空間轉換為hsv空間。其中當code選用cv_bgr2gray時,dst需要是單通道。當code選用cv_bgr2hsv時,對於8點陣圖,需要將rgb值歸一化到0-1之間。這樣得到hsv圖中的h範圍才是0-360,s和v的範圍是0-1。這裡給出講rgb影象轉換為灰度和hsv的例子: 

iplimage *src = cvloadimage("4085_1.jpg",1);//原圖  

iplimage *dst_gray = cvcreateimage(cvgetsize(src),src->depth,1);//灰度圖  

iplimage *dst_image = cvcreateimage(cvgetsize(src),32,src->nchannels);  iplimage *src_image_32 = cvcreateimage(cvgetsize(src),32,src->nchannels);   //這兩個圖需要是32浮點位的,因為對原圖進行歸一化後得到的是浮點數  cvcvtcolor(src,dst_gray,cv_bgr2gray);//得到灰度圖  cvconvertscale(src,src_image_32,1.0/255.0,0);//將原圖rgb歸一化到0-1之間  cvcvtcolor(src_image_32,dst_image,cv_bgr2hsv);//得到hsv圖

轉 cvCvtColor的用法

cvcvtcolor 是opencv裡的顏色空間轉換函式,可以實現rgb顏色向hsv,hsi等顏色空間的轉換,也可以轉換為灰度影象。引數cv bgr2gray 是rgb 到gray,引數 cv gray2bgr 是gray 到rgb.處理結果是彩色的,則轉灰色就是了 void cvcvtcolor ...

RGB顏色空間轉LAB

第一 lab顏色空間簡介 lab是由乙個亮度通道 channel 和兩個顏色通道組成的。在lab顏色空間中,每個顏色用l a b三個數字表示,各個分量的含義是這樣的 第二 為什麼使用lab顏色空間 因為它是一種裝置無關的顏色系統,也是一種基於生理特徵的顏色系統。它所描述的顏色空間就是人眼的視覺感應。...

RGB轉HSI顏色空間

顯示原圖 def rgb2hsi rgb img row np.shape rgb img 0 col np.shape rgb img 1 對原始影象進行複製 hsi img rgb img.copy 對影象進行通道拆分 b,g,r cv2.split rgb img 把通道歸一化到 0,1 b,...