From 8db52bc296f662691a17aabeeabebd713e3b576d Mon Sep 17 00:00:00 2001
From: C3031 <shitiangui@lanpucloud.cn>
Date: 星期五, 06 三月 2026 16:53:08 +0800
Subject: [PATCH] Merge branch 'master' of http://lanpucloud.cn:1111/r/~zhengyabo/LB_TyreAppearanceInspectionSoftware

---
 LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.cs |  196 ++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 152 insertions(+), 44 deletions(-)

diff --git a/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.cs b/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.cs
index be2d74e..c41bf2b 100644
--- a/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.cs
+++ b/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.cs
@@ -2,6 +2,8 @@
 using LB_SmartVisionCommon;
 using LB_VisionControl;
 using LB_VisionProcesses.Alogrithms.Halcon;
+using Microsoft.VisualBasic.ApplicationServices;
+using OpenCvSharp;
 using Sunny.UI.Win32;
 using System;
 using System.Collections.Generic;
@@ -12,12 +14,13 @@
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
+using static System.Windows.Forms.VisualStyles.VisualStyleElement;
 
 namespace LB_VisionProcesses.Alogrithms.Halcon
 {
     public partial class HImageEnhancementToolEdit : TAlgorithmEdit
     {
-
+        List<RecordImageEnhancementData> recordImageEnhancementDatas = new List<RecordImageEnhancementData>();
         private int rowriginalHeight;
         public HImageEnhancementToolEdit(HImageEnhancementTool subject = null)
         {
@@ -26,42 +29,47 @@
             else
                 Subject = new HImageEnhancementTool();
 
-            if (!(Subject.Params.ROI is HSegment))
-                Subject.Params.ROI = new HSegment(0, 0, 250, 250);
-
-            // 淇濆瓨鍘熷琛岄珮搴�
-            rowriginalHeight = (int)tableLayoutPanel4.RowStyles[1].Height;
+            //if (!(Subject.Params.ROI is HSegment))
+            //    Subject.Params.ROI = new HSegment(0, 0, 250, 250);
 
             this.Dock = DockStyle.Fill;
             InitializeComponent();
+            // 淇濆瓨鍘熷琛岄珮搴�
+            rowriginalHeight = (int)tableLayoutPanel4.RowStyles[1].Height;
+
             InitializeComboBox();
             InitializeDataGridView();
+
+            recordImageEnhancementDatas = ImageEnhancementManager.Instance.GetAllUsers();
+            this.dataGridViewIE.DataSource = recordImageEnhancementDatas;
+            this.dataGridViewIE.AutoGenerateColumns = true;
         }
 
         private void InitializeComboBox()
         {
-            //// 娣诲姞鏉冮檺閫夐」
-            //foreach (var item in Enum.GetValues(typeof(UserPermission)))
-            //{
-            //    cmbImageEnhancement.Items.Add(item.ToString());
-            //}
-            cmbImageEnhancement.Items.Add("emphasize杈圭紭澧炲己");
-            cmbImageEnhancement.Items.Add("equ_histo_image鐩存柟鍥惧潎琛″寲");
-            cmbImageEnhancement.Items.Add("scale_image_max姣斾緥澧炲己");
+            // 娣诲姞鏉冮檺閫夐」
+            foreach (var item in Enum.GetValues(typeof(ImageEnhancementDataType)))
+            {
+                cmbImageEnhancement.Items.Add(item.ToString());
+            }
 
             // 璁剧疆榛樿閫夋嫨椤�
             cmbImageEnhancement.SelectedIndex = 2;
         }
-        #region 鍥惧儚澧炲己绠楁硶閫夋嫨涓嬫媺妗�
+        #region 绠楁硶閫夋嫨涓嬫媺妗�
         private void cmbImageEnhancement_SelectedIndexChanged(object sender, EventArgs e)
         {
-            ComboBox cb = sender as ComboBox;
+            System.Windows.Forms.ComboBox cb = sender as System.Windows.Forms.ComboBox;
 
             if (cb.SelectedIndex == 0)
             {
                 ShowRow();
             }
             else if (cb.SelectedIndex == 1)
+            {
+                HideRow();
+            }
+            else
             {
                 HideRow();
             }
@@ -98,13 +106,7 @@
         #endregion
         private void InitializeDataGridView()
         {
-            //this.dataGridViewIE.DataSource = recordUserDatas;
-
-            // 璁剧疆鍒楁爣棰�
-            dataGridViewIE.Columns[0].Name = "婊ゆ尝鍣ㄧ被鍨�";
-            dataGridViewIE.Columns[1].Name = "鎺╄啘瀹藉害";
-            dataGridViewIE.Columns[2].Name = "鎺╄啘楂樺害";
-            dataGridViewIE.Columns[3].Name = "澧炲己鍥犲瓙";
+            this.dataGridViewIE.DataSource = recordImageEnhancementDatas;
 
             // 璁剧疆DataGridView鍒楀
             dataGridViewIE.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
@@ -128,8 +130,8 @@
                 cmbTypeRoi.Items.Add(value.ToString());
 
             //閬嶅巻鍙互閫夋嫨鐨勫浘鍍忓寮虹被鍨嬫灇涓�
-            foreach (var value in Enum.GetValues(typeof(ImageEnhancementType)))
-                cmbImageEnhancement.Items.Add(value.ToString());
+            //foreach (var value in Enum.GetValues(typeof(ImageEnhancementType)))
+            //    cmbImageEnhancement.Items.Add(value.ToString());
 
             //閬嶅巻鍙互閫夋嫨鐨凢ixture鏋氫妇
             cmbFixture.Items.Add("");
@@ -138,7 +140,7 @@
 
             ckbDrawRoi.Checked = true;
             cmbTypeRoi.Text = RoiType.Segment.ToString();
-            cmbImageEnhancement.Text = Transition.Ignore.ToString();
+            cmbImageEnhancement.Text = ImageEnhancementType.ScaleMax.ToString();
             LoadParas();
 
             if (Subject.Result)
@@ -156,7 +158,125 @@
             lblMsgToolTip.SetToolTip(BtmStatusStrip, Msg);
             lblRunTime.Text = $"{Subject.RunTime}ms";
         }
+        private void ClearInputFields()
+        {
+            txtMaskWidth.Clear();
+            txtMaskHeight.Clear();
+            txtFactor.Clear();
+            cmbImageEnhancement.SelectedIndex = 0;
+        }
+        private void btnAdd_Click(object sender, EventArgs e)
+        {
+            // 楠岃瘉杈撳叆
+            if (cmbImageEnhancement.SelectedIndex == 0)
+            {
+                if (string.IsNullOrWhiteSpace(txtMaskWidth.Text) || string.IsNullOrWhiteSpace(txtMaskHeight.Text) || string.IsNullOrWhiteSpace(txtFactor.Text))
+                {
+                    MessageBox.Show("璇峰~鍐欐墍鏈夊繀濉瓧娈碉紒", "鎻愮ず",
+                        MessageBoxButtons.OK, MessageBoxIcon.Warning);
+                    return;
+                }
+            }
 
+            RecordImageEnhancementData filter = new RecordImageEnhancementData();
+            filter.MaskWidth = this.txtMaskWidth.Text;
+            filter.MaskHight = this.txtMaskHeight.Text;
+            filter.Factor = this.txtFactor.Text;
+            filter.FilterName = (ImageEnhancementDataType)this.cmbImageEnhancement.SelectedIndex;
+            // 娣诲姞鍒� UserManager
+            bool success = ImageEnhancementManager.Instance.AddUser(filter);
+            if (success)
+            {
+                recordImageEnhancementDatas.Add(filter);
+                //MessageBox.Show("鐢ㄦ埛娣诲姞鎴愬姛锛�", "鎻愮ず",
+                //    MessageBoxButtons.OK, MessageBoxIcon.Information);
+
+                // 娓呯┖杈撳叆妗�
+                ClearInputFields();
+            }
+            else
+            {
+                MessageBox.Show("娣诲姞鐢ㄦ埛澶辫触锛�", "閿欒",
+                    MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+            recordImageEnhancementDatas = ImageEnhancementManager.Instance.GetAllUsers();
+            this.dataGridViewIE.DataSource = recordImageEnhancementDatas;
+            this.dataGridViewIE.AutoGenerateColumns = true;
+        }
+
+        private void btnDel_Click(object sender, EventArgs e)
+        {
+            // 妫�鏌ユ槸鍚︽湁閫変腑鐨勬护娉㈢被鍨�
+            if (cmbImageEnhancement.SelectedIndex < 0)
+            {
+                MessageBox.Show("璇烽�夋嫨瑕佸垹闄ょ殑婊ゆ尝绫诲瀷锛�", "鎻愮ず",
+                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
+                return;
+            }
+
+            try
+            {
+                DataGridViewRow selectedRow = dataGridViewIE.SelectedRows[0];
+                string filterToDel = selectedRow.Cells[0].Value?.ToString();
+
+                ImageEnhancementDataType filterToDelete = (ImageEnhancementDataType)cmbImageEnhancement.SelectedIndex;
+
+                // 鏌ユ壘瀵瑰簲鐨勮褰�
+                RecordImageEnhancementData filterToRemove = null;
+
+                // 浠庢湰鍦板垪琛ㄤ腑鏌ユ壘
+                foreach (var filter in recordImageEnhancementDatas)
+                {
+                    if (filter.FilterName.ToString() == filterToDel)
+                    {
+                        filterToRemove = filter;
+                        break;
+                    }
+                }
+
+                if (filterToRemove == null)
+                {
+                    MessageBox.Show("鏈壘鍒板搴旂殑璁板綍锛�", "鎻愮ず",
+                        MessageBoxButtons.OK, MessageBoxIcon.Warning);
+                    return;
+                }
+
+                // 纭鍒犻櫎
+                DialogResult result = MessageBox.Show(
+                    $"纭畾瑕佸垹闄� '{filterToDel}' 璁板綍鍚楋紵",
+                    "纭鍒犻櫎",
+                    MessageBoxButtons.YesNo,
+                    MessageBoxIcon.Question,
+                    MessageBoxDefaultButton.Button2); // 榛樿閫夋嫨"鍚�"
+
+                if (result == DialogResult.No)
+                    return;
+
+                // 浠庣鐞嗗櫒涓垹闄�
+                bool success = ImageEnhancementManager.Instance.DeleteUser(filterToRemove);
+
+                if (success)
+                {
+                    // 浠庢湰鍦板垪琛ㄤ腑鍒犻櫎
+                    recordImageEnhancementDatas.Remove(filterToRemove);
+
+                    MessageBox.Show("鍒犻櫎鎴愬姛锛�", "鎻愮ず",
+                        MessageBoxButtons.OK, MessageBoxIcon.Information);
+                }
+                else
+                {
+                    MessageBox.Show("鍒犻櫎澶辫触锛�", "閿欒",
+                        MessageBoxButtons.OK, MessageBoxIcon.Error);
+                }
+                recordImageEnhancementDatas = ImageEnhancementManager.Instance.GetAllUsers();
+                this.dataGridViewIE.DataSource = recordImageEnhancementDatas;
+                this.dataGridViewIE.AutoGenerateColumns = true;
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show("璇烽�夋嫨瑕佸垹闄ょ殑绠楀瓙");
+            }
+        }
         /// <summary>
         /// 鏇存柊杩愯鍙傛暟
         /// </summary>
@@ -262,22 +382,8 @@
                 }
             }));
         }
-        private void btnAdd_Click(object sender, EventArgs e)
-        {
-            switch (cmbImageEnhancement.SelectedIndex)
-            {
-                case 0:
 
-                    break;
-                case 1:
-
-                    break;
-                case 2:
-
-                    break;
-            }
-        }
-
+        #region 宸ュ叿鏍忔寜閽簨浠�
         /// <summary>
         /// 鐐瑰嚮杩愯
         /// </summary>
@@ -339,7 +445,7 @@
                 GC.Collect();
             }));
         }
-        #region 宸ュ叿鏍忔寜閽簨浠�
+
         /// <summary>
         /// 宸ュ叿鏍忊�滃鍥锯��
         /// </summary>
@@ -449,7 +555,7 @@
             }
             catch { }
         }
-        #endregion
+
         public override void cmbFixture_SelectedIndexChanged(object sender, EventArgs e)
         {
             try
@@ -461,6 +567,8 @@
             }
             catch { }
         }
-       
+        #endregion
+
+
     }
 }

--
Gitblit v1.9.3