cvMat オブジェクトに YUYV イメージ バッファがあります (スニペットを以下に示します)。色変換のために、この cvMat オブジェクトを IplImage に変換する必要がありました。
CvMat cvmat = cvMat(480, 640, CV_8UC2, yuyv_buff);
cvmat
このオブジェクトをオブジェクトに変換するために、以下のオプションを試しましたIplImage
(src: https://medium.com/@zixuan.wang/mat-cvmat-iplimage-2f9603b43909 )。
//cvGetImage()
CvMat M;
IplImage* img = cvCreateImageHeader(M.size(), M.depth(), M.channels());
cvGetImage(&M, img); //Deep Copy
//Or
CvMat M;
IplImage* img = cvGetImage(&M, cvCreateImageHeader(M.size(), M.depth(), M.channels()));
//cvConvert()
CvMat M;
IplImage* img = cvCreateImage(M.size(), M.depth(), M.channels());
cvConvert(&M, img); //Deep Copy
しかし、何も機能しませんでした。cvGetImage()
、入力としてcvConvert()
期待cvArr*
されます。それらに渡す&cvmat
と例外がスローされます。
OpenCV 2.4 で CvMat オブジェクトを IplImage オブジェクトに変換する他の方法はありますか?
注: C++ API やその他のバージョンの OpenCV は使用できません。私はOpenCV 2.4のみを使用するように制限されています
編集 1:私の目的は、この YUYV バッファーを RGB イメージ オブジェクトに変換することです。