【Halcon 内存泄漏记录 - C#】

1. Bitmap 转 HImage

由于Bitmap 在转化时使用BitmapData数据,BitmapData数据无法Dispose, 所以在使用时,使用using:

            try
            {
                using (Bitmap b = bmp.Clone() as Bitmap)
                {
                    if (bmp == null)
                    {
                        image = null;
                        return;
                    };
                    Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
                    BitmapData srcBmpData = b.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed);
                    HObject _image;

                    HOperatorSet.GenImage1(out _image, "byte", b.Width, b.Height, srcBmpData.Scan0);
                    image = new HImage(_image);
                    _image.Dispose();
                    b.UnlockBits(srcBmpData);
                    srcBmpData = null;
                }
            }
            catch (Exception ex)
            {

                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.Source);
                Console.WriteLine(ex.StackTrace);
                image = null;

            }

2. new 之后要Dispose()

HObject obj = new HObject(image);
HOperatorSet.ZoomImageFactor(obj, out hoImageZoomed, scaleR, scaleC, "constant");
obj.Dispose();

不能直接使用

HOperatorSet.ZoomImageFactor(new HObject(image), out hoImageZoomed, scaleR, scaleC, "constant");

3. 切换配方后,内存会增加

切换配方时,会重新添加检测界面模块,需要先释放

tabPageSettingList.ForEach(b => b.Dispose());
tabPageSettingList.Clear();

4. Parallel.For 嵌套Parallel.For, 会出现问题

5. 图像预处理使用需要注意不能直接在原有变量上赋值

image = image.ScaleImageMax();

改为

   HImage scaleImg = new HImage();
   if (image != null)
   {
       scaleImg = image.ScaleImageMax();
   }
   .....
   scaleImg.Dispose();

相关推荐

  1. Halcon 内存泄漏记录 - C#】

    2024-05-12 00:24:05       13 阅读
  2. C++】内存泄漏排查

    2024-05-12 00:24:05       34 阅读
  3. C++】内存泄漏

    2024-05-12 00:24:05       16 阅读
  4. C语言内存泄漏查找

    2024-05-12 00:24:05       9 阅读
  5. 内存泄漏导致Hard_Fault问题记录

    2024-05-12 00:24:05       20 阅读
  6. C++语法|C++八股|内存泄漏杂谈

    2024-05-12 00:24:05       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-12 00:24:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-12 00:24:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-12 00:24:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-12 00:24:05       20 阅读

热门阅读

  1. ImageMagick 的基本概念和使用场景

    2024-05-12 00:24:05       11 阅读
  2. git入门

    git入门

    2024-05-12 00:24:05      11 阅读
  3. 投影、选择转SQL语言

    2024-05-12 00:24:05       15 阅读
  4. BackgroundWorker类 取消任务

    2024-05-12 00:24:05       11 阅读
  5. STL——函数对象和谓词

    2024-05-12 00:24:05       13 阅读
  6. CSS盒模型

    2024-05-12 00:24:05       12 阅读