给网站做翻译,合肥建站公司seo,全国十大网站建设公司,百度词条优化工作Halcon 内存泄漏记录 - C# 1. Bitmap 转 HImage2. new 之后要Dispose()3. 切换配方后#xff0c;内存会增加4. Parallel.For 嵌套Parallel.For#xff0c; 会出现问题5. 图像预处理使用需要注意不能直接在原有变量上赋值 1. Bitmap 转 HImage
由于Bitmap 在转化时使用Bitmap… Halcon 内存泄漏记录 - C# 1. Bitmap 转 HImage2. new 之后要Dispose()3. 切换配方后内存会增加4. Parallel.For 嵌套Parallel.For 会出现问题5. 图像预处理使用需要注意不能直接在原有变量上赋值 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();