Opencv:IplImage*转Mat后的内存泄露问题
来源:互联网 发布:百事通软件下载 编辑:程序博客网 时间:2024/05/18 00:40
用Windows的API获得一个BMP的句柄,并将其转换到IplImage格式,然后再转到Mat类型。但在这里注意到会发生一个内存泄露的问题,记录下来。
Mat类型默认是浅拷贝,深拷贝需要在构造函数中加入true标识。
Mat a = Imread("pic.bmp");Mat b = a;//浅拷贝,a和b公用一块数据Mat b = Mat(a,true);//深拷贝,b将复制a的内容
IplImage类型是一个结构体,其指针所指向的内容可以作为Mat类型的构造参数。
...IplImage* p = hBitmapToIpl(hbmp);Mat temp = Mat(p);return temp;
在temp返回的值赋予的变量离开其作用域时,会调用析构函数,释放其拥有的空间,但并不会释放p指向的那一块空间,因为p非智能指针,其指向的区域除非手动释放,否则将会一直存在于程序中。因此此处应使用深拷贝:
IplImage* p = hBitmapToIpl(hbmp);Mat temp = Mat(p, true);//深拷贝 因为p的内容不会被M释放掉 存在内存泄露cvReleaseData(p);
0 0
- Opencv:IplImage*转Mat后的内存泄露问题
- 【OpenCV开发】OpenCV3后IPLimage转换成MAT的问题
- OpenCV,Mat转IplImage,字节对齐问题?
- OpenCV Mat转IplImage
- opencv IplImage转Mat
- opencv Mat转IplImage
- opencv Mat 转 iplImage*
- OpenCV Mat转IplImage的陷阱
- OpenCv IplImage 转 cv::Mat
- OpenCV Mat转IplImage陷阱
- Opencv Mat与Iplimage的相互转换
- openCV中的Mat、IplImage数据的转换
- OpenCV - cv::Mat 和 IplImage 的转换
- 关于opencv的Mat与IplImage
- opencv中Mat到 IplImage*的转换
- 【OpenCV】IplImage与Mat的相互转换
- OpenCV - cv::Mat 和 IplImage 的转换
- openCv笔记--IPLImage和Mat的resize
- 二叉树总结
- 哈夫曼(Huffman)树创建及其带权路径长度(WPL)、哈夫曼编码、哈夫曼解码
- poj 3264 Balanced Lineup(基础线段树)
- Android知识杂烩总结(一)
- 挑剔的小杜
- Opencv:IplImage*转Mat后的内存泄露问题
- Poedu_C_Lesson02_2_2017-4-21
- Mac下安装配置Homebrew图文教程
- resource处理动态数据交互
- k8s安装
- 【laravel】laravel的下载&安装
- 算法/动态规划/LongestCommonSubstring最长公共子串问题
- 根据先序遍历和中序遍历,打印层序遍历
- DOM对象