opencv里的内存泄漏(持续更新)
来源:互联网 发布:timeedit控件优化 编辑:程序博客网 时间:2024/05/17 17:15
转自:转自
1.在使用clone之前没有对目标矩阵释放。比如:
CvMat* a = cvCreateMat(5,5,CV_32F);CvMat* b = cvCreateMat(5,5,CV_32F);a=cvCloneMat(b);
这样a所指向的那个mat就会泄漏出去了。
正确的做法是在clone之前release掉原来的那个矩阵。并且注意在release之后将a置空。即:
cvReleaseMat(&a); a=NULL;
2.在使用cvGetRow,cvGetCols等函数时,没有对目的矩阵的数据区释放。比如:
CvMat* a = cvCreateMat(5,5,CV_32F);CvMat* b = cvCreateMat(5,1,CV_32F);for(int i=0;i<a->height;i++){ cvGetRow(a,b,i);}
这样a的第i行会复制一份然后替换掉原始的b->data.这样也就造成了这一部分的内存泄漏。正确的作法是:
for(..){ cvReleaseData(b); cvGetRow(a,b,i);}
呃,按说这些东西openCV应该能封装好了,并且这么重要的东西它也不在文档中写明。看着不多,写出的程序如果循环起来就不知道泄漏多少内存了
此外,再向大家推荐一个内存泄漏的检查工具:IBM Rational Purify.
阅读全文
0 0
- opencv里的内存泄漏(持续更新)
- opencv中的内存问题(持续更新.................)
- android 内存泄漏处理办法(持续更新中)
- OpenCv里的一些基本函数,持续更新中。。。。。
- OpenCv里的一些基本函数,持续更新中。。。。。
- 【opencv】opencv在vs下的配置(持续更新)
- 【持续更新】C++里的一些特性
- C语言里的库函数(持续更新)
- Java 程序里的内存泄漏
- Java 程序里的内存泄漏
- Java 程序里的内存泄漏
- Java 程序里的内存泄漏
- Java 程序里的内存泄漏
- Java 程序里的内存泄漏
- Java 程序里的内存泄漏
- Java 程序里的内存泄漏
- 几个非常好的opencv教程【持续更新】
- 几个非常好的opencv教程【持续更新】
- 高级表单、表格+bfc讲解与使用
- 区块链开发底层交易虚拟币的找零机制是什么?
- Apache Storm 的安装
- 数组必知道的几个操作
- Merriam Webster's Vocabulary Builder Roots 韦小绿英文词根 Unit 1整理
- opencv里的内存泄漏(持续更新)
- 文字高度自适应
- TCP连接状态
- .NET出现频率非常高的笔试题
- C#生成txt文件,并将数据写入进去
- C++快速判断二进制某位是1或0
- CSS 代码组织和管理规范BEM,OOCSS,SMACSS,ACSS
- 《深度学习Ng》课程学习笔记01week4——深层神经网络
- HTML5新标签