opencv IplImage创建后未释放 寻求解决疑惑。
环境:opencv2.4.2+ VS2008C++环境 + XP
使用示例如下:
在程序结束代码,没有相应的示例代码,预期泄露情况如下:
大块图像: (width * 通道数 + 3 )/4*4 * height
图像结构体泄露: IplImage 总共占用112字节,泄露 112字节 。
实际泄露情况是:
大块图像: (width * 通道数 + 3 )/4*4 * height + 20 字节 。
图像结构体泄露: 112 + 20 字节 。
请问:这俩个 20字节 是哪方面导致的内存泄露?
已经确认,任意改变 宽度和高度,通道数,都会多出20字节。
例如,一副 640*480,单通道8位图像,以及 640*480,三通道8位图像,程序退出时俩幅图像内存泄露如下:
使用示例如下:
IplImage * img = cvCreateImage(width,height,IPL_DEPTH_8U,1);在程序结束代码,没有相应的示例代码,预期泄露情况如下:
大块图像: (width * 通道数 + 3 )/4*4 * height
图像结构体泄露: IplImage 总共占用112字节,泄露 112字节 。
实际泄露情况是:
大块图像: (width * 通道数 + 3 )/4*4 * height + 20 字节 。
图像结构体泄露: 112 + 20 字节 。
请问:这俩个 20字节 是哪方面导致的内存泄露?
已经确认,任意改变 宽度和高度,通道数,都会多出20字节。
例如,一副 640*480,单通道8位图像,以及 640*480,三通道8位图像,程序退出时俩幅图像内存泄露如下:
Detected memory leaks!
Dumping objects ->
{921} normal block at 0x06AFC268, 307220 bytes long.
Data: < h > CD CD CD CD 68 C2 AF 06 00 00 00 00 00 00 00 00
{920} normal block at 0x0650A888, 132 bytes long.
Data: < P p > CD CD CD CD 88 A8 50 06 70 00 00 00 00 00 00 00
{917} normal block at 0x01EF0040, 921620 bytes long.
Data: < @ > CD CD CD CD CD CD CD CD CD CD CD CD 40 00 EF 01
{916} normal block at 0x0650A708, 132 bytes long.
Data: < P p > CD CD CD CD 08 A7 50 06 70 00 00 00 00 00 00 00
Object dump complete.
...全文
相关推荐
opencv中Mat、CvMat、IplImage、IplImage*之间转换程序
opencv中Mat、CvMat、IplImage、IplImage*数据类型之间转换方法
OpenCV将GIF转为IplImage的解决方法
OpenCV将GIF转为IplImage的解决方法 源代码
OpenCV一个通用的图像格式转为IplImage格式的代码实现
FreeImage图像库是一个开源图像库,能够帮助我们快速实现图像的读取与转换操作,由于大部分做图像处理的人接触的比较多的还是OpenCV,这里给出一个通用的图像格式转为IplImage格式的代码实现。
YUV格式转为IplImage
这个是yuv格式转为IplImage格式代码。目前网上的都有各种问题,这个绝对没有。
YV12转opencv IplImage
void Yv12ToImg(uchar *pin, IplImage* img) { uchar y, cb, cr; int ySize = img->width * img->height; int uSize = ySize / 4; uchar *pY = pin; uchar *pU = pY


图形处理/算法
