cvCvtColor

cvCvtColor

cvCvtColor是Opencv里的顏色空間轉換函式,可以實現RGB顏色向HSV,HSI等顏色空間的轉換,也可以轉換為灰度圖像,參數CV_RGB2GRAY是RGB到gray。

概況

cvCvtColor(...),是Opencv里的顏色空間轉換函式,可以實現RGB顏色向HSV,HSI等顏色空間的轉換,也可以轉換為灰度圖像。

參數CV_RGB2GRAY是RGB到gray。

參數 CV_GRAY2RGB是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圖

相關詞條

相關搜尋

熱門詞條

聯絡我們