当前位置:   article > 正文

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

【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;

            }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

2. new 之后要Dispose()

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

不能直接使用

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

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

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

tabPageSettingList.ForEach(b => b.Dispose());
tabPageSettingList.Clear();
  • 1
  • 2

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

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

image = image.ScaleImageMax();
  • 1

改为

   HImage scaleImg = new HImage();
   if (image != null)
   {
       scaleImg = image.ScaleImageMax();
   }
   .....
   scaleImg.Dispose();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/556936
推荐阅读
相关标签
  

闽ICP备14008679号