2013-09-16 150 views
0

您好我需要將我的捕捉幀(Mat)轉換爲YCBCR並分離通道,我該怎麼辦?將bgr轉換爲ycbcr並在opencv中分開通道

我的代碼:

frame_capturado = cvQueryFrame(capture); 
cvtColor(frame_capturado,frameycbcr,CV_BGR2YCrCb); 

現在...?

在形而下我需要CR通道

+0

標題說將BGR轉換爲YCbCr,但提議的代碼轉換爲YCrCb ... –

回答

1

現在...

Mat ycrcb[3]; 
split(frameycbcr, ycrcb); 

// do work 

Mat ycrcb_merged; 
merge(ycrcb,3, ycrcb_merged); 

(和請使用VideoCapture代替CvCapture,不要將舊C-API和新的C++ API)。

+0

謝謝,並且使用mixchannels函數有可能嗎?也許:int ch [] = {2,0}; cr.create(frameycbcr.size(),frameycbcr.depth()); mixChannels(&frameycbcr,1,&cr,1,ch,1); –

+0

是的,mixchannels也可以。但請注意,第1個參數是一個通道數組,而不是frameycbcr圖像。 – berak

相關問題