openize内存泄漏在equalizeHist中?

时间:2015-12-08 16:19:09

标签: c++ opencv memory-leaks histogram

我在~20000张图片中运行一个过程。它每次都在不同的地方崩溃,所以我决定调试它。 经过一些调试后,我意识到了这一点:

enter image description here

enter image description here

我只是创建一个虚拟函数来均衡图像,当它超出范围时,它不会释放所有内存。 我尝试过: equalizedImage.release()但结果相同。

关于做什么或者我没有正确管理的任何想法?

(使用Opencv版本2.4.9)

谢谢!

3 个答案:

答案 0 :(得分:1)

文档并未指出src和dest可以是同一图像。

答案 1 :(得分:1)

我不想对此发表评论,但我想注意一些事情。

1)Windows'为此,无法完全信任任务管理器内存使用情况指示器。进程可以自由保留一些内存以供将来使用。

2)请发布泄漏的代码,以便我们可以正确地重现它。可能使用像Valgrind这样的工具可以检测到泄漏。至少这比任务管理器更好。

3)您是否考虑升级到OpenCV的最新版本以查看此行为是否消失?

4)我非常怀疑这与你的崩溃有关。

答案 2 :(得分:0)

您的代码很好,不应该导致任何泄漏。问题出在其他地方。但是,将openCV与您的程序错误地链接(例如,当您的程序是MD或其他错误配置时与MT链接)会导致释放cv :: Mat时出现问题,这是常见的问题。此问题通常出现在调试模式下,并在发布模式下消失。所以你可以尝试在调试模式下调试它。此问题可能会阻止Mat正确释放。

顺便说一句,1000个纪元后你的内存使用量是多少?