gpt4 book ai didi

android - 使用 opencv 2.0 明确发布 Mat

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:32 27 4
gpt4 key购买 nike

我正在开发一个程序,我们使用 Android NDK 对全质量相机照片进行一些图像处理。因此,内存使用显然是一个大问题。

有时候我不再需要 Mat 的内容了——我知道当它超出范围时它会自动释放,但是有没有一种提前释放它的好方法,这样我就可以减少内存使用情况?

它现在在我的 Galaxy S II 上运行良好,但显然这不能代表周围许多旧手机的功能!

最佳答案

如果你只有一个矩阵指向你的数据,你可以这样做:

Mat img = imread("myImage.jpg");
// do some operations
img = Mat(); // release it

如果不止一个 Mat 指向你的数据,你应该做的是释放所有这些

Mat img = imread("myImage.jpg");

Mat img2 = img;
Mat roi = img(Rect(0,0,10,10));
// do some operations

img = Mat(); // release all of them
img2 = Mat();
roi = Mat();

或者使用推土机方法:(你确定吗?这听起来像是在你的代码中插入错误)

Mat img = imread("myImage.jpg");

Mat img2 = img;
Mat roi = img(Rect(0,0,10,10));
// do some operations
char* imgData = (char*)img.data;

free[] imgData;

imshow("Look, this is called access violation exception", roi);

关于android - 使用 opencv 2.0 明确发布 Mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9028769/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com