繁体   English   中英

如何在 OpenCVSharp 中处理矩阵数组?

[英]How do I dispose a Matrix Array in OpenCVSharp?

为了释放 OpenCVSharp.Mat 对象的内存,我根据文档使用 ResourceTracker:

using (ResourcesTracker t = new ResourcesTracker())
{
    Mat finalMat = t.T(new Mat());
}

但是,这种语法似乎不适用于像这样使用的 Mats 数组:

Mat[] images = t.T(new Mat[length]);

这给了我一个 System.ArgumentNullException,“值不能为 NULL”。

我试过调用 Array 的.Dispose() ,但这似乎对内存没有影响。

我意识到我可以让垃圾收集完成这项工作,但我宁愿正确地完成它。

我最终这样做了:

for (int j = 0; j<i; j++)
            {
                images[j].Dispose();
            }

虽然并没有真正改变任何东西,但我不太明白为什么当它们是数组而不是单个 Mat 项目时我不需要处置这些项目。

我的内存泄漏来自使用stitcher 方法而不是使用stitcher.Dispose();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM