From 4091d5009b63ba1d6f24788ca79877c37001e0f6 Mon Sep 17 00:00:00 2001
From: C3032 <1057644574@qq.com>
Date: 星期五, 20 三月 2026 11:08:39 +0800
Subject: [PATCH] 华睿读码器集成完成,使用抽象接口-基类-各品牌子类的架构,实现可插拔设计,遵循开闭原则,方便后续集成其他品牌读码器

---
 LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs |  125 +++++++++++++++++++----------------------
 1 files changed, 57 insertions(+), 68 deletions(-)

diff --git a/LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs b/LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs
index 9ae365b..dd8e2e6 100644
--- a/LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs
+++ b/LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs
@@ -3836,99 +3836,88 @@
         /// 鍥惧儚澧炲己绠楁硶-杈圭紭澧炲己
         /// </summary>
         /// <param name="ho_Image">寰呮祴鍥剧墖</param>
+        /// <param name="hv_ImageEnhancementType">婊ゆ尝鍣ㄧ被鍨�(mean/gauss/median)</param>
         /// <param name="hv_Wid">鎺╄啘瀹�</param>
         /// <param name="hv_High">鎺╄啘楂�</param>
         /// <param name="hv_Fac">澧炲己鍥犲瓙</param>
-        /// <param name="hv_Row1">璧峰绾靛潗鏍�</param>
-        /// <param name="hv_Column1">璧峰妯潗鏍�</param>
-        /// <param name="hv_Row2">缁撴潫绾靛潗鏍�</param>
-        /// <param name="hv_Column2">缁撴潫妯潗鏍�</param>
-        public static void Emphsize(HObject ho_Image, out HObject ho_OutImage, HTuple hv_ImageEnhancementType, HTuple hv_Wid, HTuple hv_High, HTuple hv_Fac)
+
+        public static void ImageEnhancement(HObject ho_Image, out HObject ho_OutImage, string hv_ImageEnhancementType, int hv_Wid, int hv_High, double hv_Fac)
         {
             HOperatorSet.GenEmptyObj(out ho_OutImage);
+            
             try
             {
-                HTuple hv_ImageEnhancementTypeOut = new HTuple();
-                hv_ImageEnhancementTypeOut.Dispose();
-                hv_ImageEnhancementTypeOut = new HTuple(hv_ImageEnhancementType);
-
-                hv_Wid.Dispose();
-                hv_High.Dispose();
-                ho_OutImage.Dispose();
-
-                //璁剧疆鍥惧儚澧炲己绠楁硶
-                if ((int)(new HTuple(hv_ImageEnhancementTypeOut.TupleEqual("emphasize"))) != 0)
+                // 鏍规嵁婊ゆ尝鍣ㄧ被鍨嬫墽琛岀浉搴旀搷浣�
+                switch (hv_ImageEnhancementType.ToLower())
                 {
-                    hv_ImageEnhancementTypeOut.Dispose();
-                    hv_ImageEnhancementTypeOut = "emphasize";
-                    HOperatorSet.Emphasize(ho_Image, out ho_OutImage, hv_Wid, hv_High, hv_Fac);
+                    case "emphasize":
+                        HOperatorSet.Emphasize(ho_Image, out ho_OutImage, hv_Wid, hv_High, hv_Fac);
+                        break;
+
+                    case "scaleimagemax":  
+                        HOperatorSet.ScaleImageMax(ho_Image, out ho_OutImage);
+                        break;
+
+                    case "equhisto":
+                        HOperatorSet.EquHistoImage(ho_Image, out ho_OutImage);
+                        break;
+
+                    default:
+                        throw new ArgumentException($"涓嶆敮鎸佺殑婊ゆ尝鍣ㄧ被鍨�: {hv_ImageEnhancementType}");
                 }
-                else if ((int)(new HTuple(hv_ImageEnhancementTypeOut.TupleEqual("equHisto"))) != 0)
-                {
-                    hv_ImageEnhancementTypeOut.Dispose();
-                    hv_ImageEnhancementTypeOut = "equHisto";
-
-                }
-                else
-                {
-                    hv_ImageEnhancementTypeOut.Dispose();
-                    hv_ImageEnhancementTypeOut = "scaleMax";
-                }
-
-
-
-                HOperatorSet.EquHistoImage(ho_Image, out ho_OutImage);
-
-
-                return;
             }
-            catch (HalconException HDevExpDefaultException)
+            catch (Exception ex)
             {
-
-                hv_Wid.Dispose();
-                hv_High.Dispose();
-
-                throw HDevExpDefaultException;
+                // 纭繚寮傚父鏃堕噴鏀捐祫婧�
+                ho_OutImage?.Dispose();
+                throw new Exception($"鍥惧儚婊ゆ尝澶辫触: {ex.Message}", ex);
             }
         }
+
         /// <summary>
-        /// 鍥惧儚澧炲己绠楁硶-姣斾緥澧炲己
+        /// 鍥惧儚婊ゆ尝
         /// </summary>
         /// <param name="ho_Image">寰呮祴鍥剧墖</param>
+        /// <param name="ho_OutImage">杈撳嚭鍥剧墖</param>
+        /// <param name="hv_FilterType">婊ゆ尝鍣ㄧ被鍨�(mean/gauss/median)</param>
         /// <param name="hv_Wid">鎺╄啘瀹�</param>
-        public static void ScaleImageMax(HObject ho_Image, out HObject ho_OutImage)
+        /// <param name="hv_High">鎺╄啘楂�</param>
+        /// <param name="hv_Size">楂樻柉鏍稿昂瀵�</param>
+        public static void Filter(HObject ho_Image, out HObject ho_OutImage, string hv_FilterType, int hv_Wid, int hv_High, int hv_Size)
         {
+            // 鍒濆鍖栬緭鍑哄璞�
             HOperatorSet.GenEmptyObj(out ho_OutImage);
+
             try
             {
-                ho_OutImage.Dispose();
-                HOperatorSet.ScaleImageMax(ho_Image, out ho_OutImage);
-                return;
+                // 鏍规嵁婊ゆ尝鍣ㄧ被鍨嬫墽琛岀浉搴旀搷浣�
+                switch (hv_FilterType.ToLower())
+                {
+                    case "mean":
+                        HOperatorSet.MeanImage(ho_Image, out ho_OutImage, hv_Wid, hv_High);
+                        break;
+
+                    case "gauss":
+                    case "guass":  // 鍏煎鎷煎啓閿欒
+                        HOperatorSet.GaussFilter(ho_Image, out ho_OutImage, hv_Size);
+                        break;
+
+                    case "median":
+                        HOperatorSet.MedianRect(ho_Image, out ho_OutImage, hv_Wid, hv_High);
+                        break;
+
+                    default:
+                        throw new ArgumentException($"涓嶆敮鎸佺殑婊ゆ尝鍣ㄧ被鍨�: {hv_FilterType}");
+                }
             }
-            catch (HalconException HDevExpDefaultException)
+            catch (Exception ex)
             {
-                throw HDevExpDefaultException;
+                // 纭繚寮傚父鏃堕噴鏀捐祫婧�
+                ho_OutImage?.Dispose();
+                throw new Exception($"鍥惧儚婊ゆ尝澶辫触: {ex.Message}", ex);
             }
         }
-        /// <summary>
-        /// 鍥惧儚澧炲己绠楁硶-鐩存柟鍥惧潎琛″寲
-        /// </summary>
-        /// <param name="ho_Image">寰呮祴鍥剧墖</param>
-        /// <param name="hv_Wid">鎺╄啘瀹�</param>
-        public static void EquHistoImage(HObject ho_Image, out HObject ho_OutImage)
-        {
-            HOperatorSet.GenEmptyObj(out ho_OutImage);
-            try
-            {
-                ho_OutImage.Dispose();
-                HOperatorSet.EquHistoImage(ho_Image, out ho_OutImage);
-                return;
-            }
-            catch (HalconException HDevExpDefaultException)
-            {
-                throw HDevExpDefaultException;
-            }
-        }
+
 
         /// <summary>
         /// 鍗″昂绠楁硶

--
Gitblit v1.9.3