opencv IplImage创建后未释放 寻求解决疑惑。

风来我也来 风来我也来 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
环境:opencv2.4.2+ VS2008C++环境 + XP
使用示例如下:
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.
...全文
评论 7
收藏 已收藏
分享
返回顶部