OpenCV的cvReleaseImage释放内存出错解决方法及Mat格式与IplImage格式相互转换

在使用BBX3捕获视频时,在while语句中有如下代码段,

... ...
IplImage *imgLeft, *imgRight;
IplImage *imgLeftCalib, *imgRightCalib;
... ...
while( true )
{
... ...
Mat rectL(rgbImageL.GetRows()/2,rgbImageL.GetCols()/2,CV_8UC3);
Mat rectR(rgbImageR.GetRows()/2,rgbImageR.GetCols()/2,CV_8UC3);
imgLeft = &IplImage(rectL);
imgRight = &IplImage(rectR);//Mat格式转IplImage格式

imgLeftCalib = cvCloneImage(imgLeft);
imgRightCalib = cvCloneImage(imgRight);
... ...
cvReleaseImage(&imgLeft);
cvReleaseImage(&imgRight);
cvReleaseImage(&imgLeftCalib);
cvReleaseImage(&imgRightCalib);
}
... ...


运行程序提示cvReleaseImage释放内存出错,把下面这两行注释掉后程序执行成功。

cvReleaseImage(&imgLeft);
cvReleaseImage(&imgRight);

Mat格式与IplImage格式互相转换代码如下:

Mat imgMat;
IplImage *imgIpl;
imgMat = Mat(imgIpl);
imgIpl = &IplImage(imgMat);


发布了15 篇原创文章 · 获赞 10 · 访问量 4万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览