Image 循环和位图:循环时如何处理emgu图像(bgr,字节)?

Image 循环和位图:循环时如何处理emgu图像(bgr,字节)?,image,bitmap,dispose,emgucv,Image,Bitmap,Dispose,Emgucv,在for…next循环中,如何处理位图和图像 特别是图像(bgr的字节)图像 “图像(bgr,字节)”图像来自emgu库 处置单个位图或图像时,Dispose()命令可以正常工作 但当您在多个图像中循环时,会出现Outofmemory错误 即使在应用时使用。。。如果使用命令结束,则会出现内存问题 例如,这将为我抛出内存错误: Dim pic As Bitmap = New Bitmap(270, 100) For i = 0 to 100 Dim CleanImage As New Im

在for…next循环中,如何处理位图和图像

特别是
图像(bgr的字节)
图像

“图像(bgr,字节)”图像来自emgu库

处置单个位图或图像时,
Dispose()
命令可以正常工作

但当您在多个图像中循环时,会出现Outofmemory错误

即使在应用
时使用。。。如果使用
命令结束,则会出现内存问题

例如,这将为我抛出内存错误:

Dim pic As Bitmap = New Bitmap(270, 100)
For i = 0 to 100
    Dim CleanImage As New Image(Of Bgr, Byte)(pic)

    'this command comes from the emgu library - tesseract
    OCRz.Recognize(CleanImage)    

    CleanImage.Dispose()

Next
我也将:

Dim pic As Bitmap = New Bitmap(270, 100)
For i = 0 to 100
    Using CleanImage As New Image(Of Bgr, Byte)(pic)  
        OCRz.Recognize(CleanImage)    
    End Using
Next
我试过
GC.Collect()
。这不管用

我如何正确地去除程序中这些恼人的位图和图像

我迫切需要一个解决办法

emgu wiki声明如下:

图像类的自动垃圾收集 自动处理内存管理和垃圾 收藏

一旦垃圾收集器决定不再引用 图像对象,它将调用Disposed方法, 这将释放非托管IplImage结构

垃圾回收器决定处理映像的时间不确定 放心。使用大图像时,建议调用 Dispose()方法显式释放对象。或者,使用 使用C#中的关键字来限制图像的范围

using (Image<Gray, Single> image = new Image<Gray, Single>(1000, 800))

 {  

        ... //do something here in the image 

 } //The image will be disposed here and memory freed
使用(图像=新图像(1000800))
{  
…//在图像中执行某些操作
}//将在此处处理映像并释放内存
这正是我正在做的。然而,我收到了这个OutOfMemory例外。发生了什么事