当我尝试创建一个cv :: Mat并在之后发布它(下面的代码)时,我仍然(根据valgrind)内存泄漏大约每个像素1个字节.

有谁知道如何正确释放cv :: Mat的记忆?

谢谢你的激情:)

码:

int main(int argc, char** argv)

{

cv::Mat* matrx = new cv::Mat(1000,1000,CV_8UC1,0.);

matrx->release();

delete matrx;

return 0;

}

Valgrind的:

[...]

==29420== 1,000,028 bytes in 1 blocks are definitely lost in loss record 372 of 372

==29420== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)

==29420== by 0x5438877: cv::fastMalloc(unsigned long) (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4.8)

==29420== by 0x536FE2A: cv::Mat::create(int, int const*, int) (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4.8)

==29420== by 0x426FB5: cv::Mat::create(int, int, int) (mat.inl.hpp:663)

==29420== by 0x426ECD: cv::Mat::Mat(int, int, int, cv::Scalar_ const&) (mat.inl.hpp:347)

==29420== by 0x425A09: main (main.cpp:18)

==29420==

==29420== LEAK SUMMARY:

==29420== definitely lost: 1,000,028 bytes in 1 blocks

==29420== indirectly lost: 0 bytes in 0 blocks

==29420== possibly lost: 5,072 bytes in 95 blocks

==29420== still reachable: 304,758 bytes in 1,348 blocks

==29420== suppressed: 0 bytes in 0 blocks

[...]

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐