繁体   English   中英

OpenCV 2.4:用于将cvMat转换为IplImage的C API

[英]OpenCV 2.4 : C API for converting cvMat to IplImage

我在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图像对象。

而不是创造的cvMat ,我能创造一个IplImage直接从像下面的YUYV图像缓冲区:

IplImage* frame = cvCreateImage(cvSize(640,480), IPL_DEPTH_8U, 2); 
frame->imageData=(char*)yuyv_buffer;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM