轮胎外观检测添加思谋语义分割模型检测工具
C3204
昨天 848ae3a7841a16322c23f9c0d10b2fab83a97c2c
LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs
@@ -2,6 +2,7 @@
using LB_SmartVisionCommon;
using LB_VisionProcesses.Cameras.LBCameras;
using MVSDK_Net;
using Sunny.UI;
using System;
using System.Collections;
using System.Collections.Concurrent;
@@ -102,7 +103,10 @@
                                typeof(IMVDefine.IMV_DeviceInfo));
                        string cameraInfo = $"{deviceInfo.cameraName}[{deviceInfo.serialNumber}]";
                        cameraList.Add(cameraInfo);
                        if (!cameraInfo.Contains("L"))
                        {
                            cameraList.Add(cameraInfo);
                        }
                    }
                }
                else
@@ -233,10 +237,9 @@
                    AsyncLogHelper.Warn(SN + "帧转换为Bitmap失败,跳过处理");
                    return;
                }
                AsyncLogHelper.Info(SN + $"图像已加入缓存,当前缓存数量:{CollectedImages[SN].Count}");
                // 3. 获取/创建线程安全队列
                var queue = CollectedImages.GetOrAdd(SN, new ConcurrentQueue<Bitmap>());
                AsyncLogHelper.Info(SN + $"图像已加入缓存,当前缓存数量:{CollectedImages[SN].Count}");
                // 4. 队列限流,防止内存溢出
                if (queue.Count >= MAX_QUEUE_CAPACITY)
                {
@@ -308,6 +311,7 @@
                            {
                                // 触发图像事件
                                ImageGrabbed?.Invoke(this, new LBCameraEventArgs(SN, clone, true));
                                CallBackImg = (Bitmap)clone.Clone();
                            }
                            // 触发模式判断
@@ -1408,7 +1412,6 @@
        public override bool GetImage(out Bitmap bitmap, int outtime = 3000)
        {
            bitmap = null;
            try
            {
                // 设置超时时间
@@ -1421,12 +1424,12 @@
                        lock (CallBackImg)
                        {
                            // 保存旧 Bitmap 并释放
                            bitmap = CallBackImg.Clone() as Bitmap; // 创建副本
                            bitmap = CallBackImg; // 创建副本
                        }
                        // 释放旧资源
                        CallBackImg.Dispose();
                        CallBackImg = null;
                        //// 释放旧资源
                        //CallBackImg.Dispose();
                        //CallBackImg = null;
                        return true;
                    }
                }