【发布时间】:2016-11-08 11:41:52
【问题描述】:
我正在使用 EmguCV 3.1.0.2282,我发现当我使用图像时,有时它不会释放其资源并耗尽内存,直到 PC 资源不足并引发内存不足异常.
这是我在应用程序中所做的测试代码。单击按钮时,会根据内存中现有的位图实例化一个新的本地图像。如果选中该复选框,它将执行手动处理。
private void button1_Click(object sender, EventArgs e)
{
Image<Bgr, Byte> TempImage = new Image<Bgr, Byte>(CurrentLeftBitmap);
TempImage.ThresholdBinary(new Bgr(2.2, 3.3, 4.4), new Bgr(100.0, 100.0, 100.0));
if (checkBox1.Checked)
{
TempImage.Dispose();
TempImage = null;
}
}
我发现每次单击按钮时,内存都会下降,并且不会在不重新启动应用程序的情况下释放。即使我进行手动处理,内存仍然会下降。有趣的是,如果我注释掉 ThresholdBinary 步骤,它工作正常。但是,它仍然需要手动处理。我也试过 USING 语句,但还是一样。
我的问题是有人遇到过类似的事情吗?实现这些图像对象的正确方法是什么?
【问题讨论】:
标签: c# memory-leaks garbage-collection emgucv