cvReleaseImage()出错的问题

本文详细介绍了在使用OpenCV进行图像处理时,如何正确释放自定义变量以避免内存泄露的问题。通过对比cvReleaseImage()与cvCreateImage()的使用场景,文章提供了将Mat类型转换为IplImage以及反向转换的方法,并强调了在释放内存时应注意检查创建源。此外,还分享了一个常用的转换公式,帮助开发者避免常见的编程错误。

在写相关程序的时候,在程序的结尾处释放前段自定义的变量。使用函数cvReleaseImage(&src_Img);时程序在调试结束后报错,指明是在释放内存时出错。经过看前辈们遇到的相同的问题。先总结如下:

    cvReleaseImage()和cvCreateImage()相对应的。在程序中如果没有使用cvCreateImage()“创建”就不能“释放”。所以,如果我们使用的指针不是用cvCreateImage()创建的,那么使用cvReleaseImage()就会出现错误。如果担心指针不释放会引发内存的错误。可以使用src_Img= NULL;来释放内存。因为cvReleaseImage()的作用就是将作为参数的那个指针设置为NULL;

另外将常用的一个格式转换记录如下,防止遗忘

Mat 转 IplImage:

Mat src;
IplImage *src_Img=(&(IplImage)src);
IplImage转Mat

Mat src(src_Img);



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值