Image <,>不会使用EmguCV

时间:2018-12-22 22:08:54

标签: c# opencv memory-leaks memory-consumption emgucv

很多人提出了这个问题,但没有人回答! 我正在使用EmguCV,这是.NET的OpenCV包装器。我正在处置所有创建的对象,但我的应用程序仍然会使用越来越多的内存,直到崩溃为止。 我几乎尝试了所有操作,包括:.Dispose() =null using() 甚至GC几乎每半秒运行一次,却没有任何反应! 这是我的代码:

(我选择了100张扫描的图像,所有图像均为JPG类型和300dpi) 这些图像之一被上传到DropBox,以保持质量: https://www.dropbox.com/s/tsbe8pesbxk7dsz/Example.jpg?dl=0

private void OpenFolder_Click(object sender, EventArgs e)
{
    using (OpenFileDialog open = new OpenFileDialog())
    {
        open.Multiselect = true;
        if (open.ShowDialog() == DialogResult.OK)
            for (int i = 0; i < open.FileNames.Count(); i++)
                using (Image<Bgr, byte> ToProcess = new Image<Bgr, byte>(open.FileNames[i]))
                    ProcessImage (ToProcess);
    }
}

private void ProcessImage (Image<Bgr, byte> imgInput)
{
    imgInput._SmoothGaussian(5);            
}

我也尝试将ProcessImage函数中的代码更新为以下内容,但我的程序死机并崩溃!

IntPtr image = imgInput;
imgInput._SmoothGaussian(5);
CvInvoke.cvReleaseImage(ref image);

重要更新: 如果该功能在我的程序崩溃之前完成,那么令人惊讶的是它将释放所有内存。这是一张图。

Ram going up

我使用的是VS 2017-社区,Win10 64位,均为最新版本,并且是EmguCV 3.4.3的最后稳定版本

0 个答案:

没有答案