From 46431fb658701489f8d5de4475b02df728c51f36 Mon Sep 17 00:00:00 2001
From: chunxiaqiu <1057644574@qq.com>
Date: 星期三, 18 三月 2026 15:48:26 +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