From 065674f3eea53cd84244dbb7ba1a994f86dde1ab Mon Sep 17 00:00:00 2001
From: C3031 <shitiangui@lanpucloud.cn>
Date: 星期五, 30 一月 2026 09:09:47 +0800
Subject: [PATCH] 

---
 LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.resx                    |   11 
 LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.resx                        |   11 
 LB_VisionProcesses/Alogrithms/Halcon/2D/HBlobTool/HBlobToolEdit.resx                                |    4 
 LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementTool.cs              |  180 ++++
 LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.resx        |  126 +++
 LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.Designer.cs                 |  395 ++++----
 LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs                                           |   98 ++
 LB_VisionProcesses/Alogrithms/Halcon/2D/HBlobTool/HBlobToolEdit.Designer.cs                         |  603 +++++++------
 LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.cs          |   20 
 LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.Designer.cs |  683 ++++++++++++++++
 LB_SmartVision/VisionForm.Designer.cs                                                               |   10 
 LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.Designer.cs             |  262 +++--
 12 files changed, 1,795 insertions(+), 608 deletions(-)

diff --git a/LB_SmartVision/VisionForm.Designer.cs b/LB_SmartVision/VisionForm.Designer.cs
index bbb7b57..ef45a32 100644
--- a/LB_SmartVision/VisionForm.Designer.cs
+++ b/LB_SmartVision/VisionForm.Designer.cs
@@ -89,7 +89,7 @@
             // 
             sc_VisionForm.Panel2.Controls.Add(grb_Info);
             sc_VisionForm.Size = new Size(1416, 781);
-            sc_VisionForm.SplitterDistance = 593;
+            sc_VisionForm.SplitterDistance = 592;
             sc_VisionForm.SplitterWidth = 5;
             sc_VisionForm.TabIndex = 1;
             // 
@@ -108,7 +108,7 @@
             tlp_MainView.RowStyles.Add(new RowStyle(SizeType.Absolute, 60F));
             tlp_MainView.RowStyles.Add(new RowStyle(SizeType.Absolute, 39F));
             tlp_MainView.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            tlp_MainView.Size = new Size(1416, 593);
+            tlp_MainView.Size = new Size(1416, 592);
             tlp_MainView.TabIndex = 1;
             tlp_MainView.TagString = null;
             // 
@@ -122,7 +122,7 @@
             materialTabControl.MouseState = MaterialSkin.MouseState.HOVER;
             materialTabControl.Name = "materialTabControl";
             materialTabControl.SelectedIndex = 0;
-            materialTabControl.Size = new Size(1412, 490);
+            materialTabControl.Size = new Size(1412, 489);
             materialTabControl.TabIndex = 0;
             // 
             // tlp_VisionMainOperator
@@ -249,7 +249,7 @@
             grb_Info.MinimumSize = new Size(1, 1);
             grb_Info.Name = "grb_Info";
             grb_Info.Padding = new Padding(0, 40, 0, 0);
-            grb_Info.Size = new Size(1416, 183);
+            grb_Info.Size = new Size(1416, 184);
             grb_Info.TabIndex = 1;
             grb_Info.Text = "鏃ュ織鏄剧ず鍖猴細";
             grb_Info.TextAlignment = ContentAlignment.MiddleLeft;
@@ -265,7 +265,7 @@
             rich_Info.Name = "rich_Info";
             rich_Info.Padding = new Padding(2);
             rich_Info.ShowText = false;
-            rich_Info.Size = new Size(1416, 143);
+            rich_Info.Size = new Size(1416, 144);
             rich_Info.TabIndex = 0;
             rich_Info.TextAlignment = ContentAlignment.MiddleLeft;
             // 
diff --git a/LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs b/LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs
index 2c7a2c6..9ae365b 100644
--- a/LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs
+++ b/LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs
@@ -3833,6 +3833,104 @@
         }
 
         /// <summary>
+        /// 鍥惧儚澧炲己绠楁硶-杈圭紭澧炲己
+        /// </summary>
+        /// <param name="ho_Image">寰呮祴鍥剧墖</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)
+        {
+            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)
+                {
+                    hv_ImageEnhancementTypeOut.Dispose();
+                    hv_ImageEnhancementTypeOut = "emphasize";
+                    HOperatorSet.Emphasize(ho_Image, out ho_OutImage, hv_Wid, hv_High, hv_Fac);
+                }
+                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)
+            {
+
+                hv_Wid.Dispose();
+                hv_High.Dispose();
+
+                throw HDevExpDefaultException;
+            }
+        }
+        /// <summary>
+        /// 鍥惧儚澧炲己绠楁硶-姣斾緥澧炲己
+        /// </summary>
+        /// <param name="ho_Image">寰呮祴鍥剧墖</param>
+        /// <param name="hv_Wid">鎺╄啘瀹�</param>
+        public static void ScaleImageMax(HObject ho_Image, out HObject ho_OutImage)
+        {
+            HOperatorSet.GenEmptyObj(out ho_OutImage);
+            try
+            {
+                ho_OutImage.Dispose();
+                HOperatorSet.ScaleImageMax(ho_Image, out ho_OutImage);
+                return;
+            }
+            catch (HalconException HDevExpDefaultException)
+            {
+                throw HDevExpDefaultException;
+            }
+        }
+        /// <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>
         /// 鍗″昂绠楁硶
         /// </summary>
         /// <param name="ho_Image">寰呮祴鍥剧墖</param>
diff --git a/LB_VisionProcesses/Alogrithms/Halcon/2D/HBlobTool/HBlobToolEdit.Designer.cs b/LB_VisionProcesses/Alogrithms/Halcon/2D/HBlobTool/HBlobToolEdit.Designer.cs
index 80b4288..4e3bfe8 100644
--- a/LB_VisionProcesses/Alogrithms/Halcon/2D/HBlobTool/HBlobToolEdit.Designer.cs
+++ b/LB_VisionProcesses/Alogrithms/Halcon/2D/HBlobTool/HBlobToolEdit.Designer.cs
@@ -155,9 +155,9 @@
             // tablePanelParas
             // 
             tablePanelParas.ColumnCount = 4;
-            tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 90F));
+            tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 116F));
             tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
-            tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 90F));
+            tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 116F));
             tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
             tablePanelParas.Controls.Add(dtxtMaxDistDeviation, 3, 7);
             tablePanelParas.Controls.Add(dtxtMinDistDeviation, 1, 7);
@@ -204,8 +204,8 @@
             tablePanelParas.Controls.Add(label32, 2, 7);
             tablePanelParas.Controls.Add(dtxtMinContlength, 1, 4);
             tablePanelParas.Dock = DockStyle.Fill;
-            tablePanelParas.Location = new Point(3, 3);
-            tablePanelParas.Margin = new Padding(2, 3, 2, 3);
+            tablePanelParas.Location = new Point(4, 4);
+            tablePanelParas.Margin = new Padding(3, 4, 3, 4);
             tablePanelParas.Name = "tablePanelParas";
             tablePanelParas.RowCount = 12;
             tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Percent, 8.333333F));
@@ -220,284 +220,286 @@
             tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Percent, 8.333333F));
             tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Percent, 8.333333F));
             tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Percent, 8.333333F));
-            tablePanelParas.Size = new Size(386, 516);
+            tablePanelParas.Size = new Size(498, 611);
             tablePanelParas.TabIndex = 0;
             // 
             // dtxtMaxDistDeviation
             // 
-            dtxtMaxDistDeviation.Location = new Point(286, 297);
+            dtxtMaxDistDeviation.Location = new Point(369, 354);
+            dtxtMaxDistDeviation.Margin = new Padding(4);
             dtxtMaxDistDeviation.Name = "dtxtMaxDistDeviation";
-            dtxtMaxDistDeviation.Size = new Size(97, 23);
+            dtxtMaxDistDeviation.Size = new Size(124, 27);
             dtxtMaxDistDeviation.TabIndex = 36;
             dtxtMaxDistDeviation.Text = "0";
             // 
             // dtxtMinDistDeviation
             // 
-            dtxtMinDistDeviation.Location = new Point(93, 297);
+            dtxtMinDistDeviation.Location = new Point(120, 354);
+            dtxtMinDistDeviation.Margin = new Padding(4);
             dtxtMinDistDeviation.Name = "dtxtMinDistDeviation";
-            dtxtMinDistDeviation.Size = new Size(97, 23);
+            dtxtMinDistDeviation.Size = new Size(124, 27);
             dtxtMinDistDeviation.TabIndex = 35;
             dtxtMinDistDeviation.Text = "0";
             // 
             // dtxtMaxDistMean
             // 
-            dtxtMaxDistMean.Location = new Point(286, 255);
+            dtxtMaxDistMean.Location = new Point(369, 304);
+            dtxtMaxDistMean.Margin = new Padding(4);
             dtxtMaxDistMean.Name = "dtxtMaxDistMean";
-            dtxtMaxDistMean.Size = new Size(97, 23);
+            dtxtMaxDistMean.Size = new Size(124, 27);
             dtxtMaxDistMean.TabIndex = 34;
             dtxtMaxDistMean.Text = "0";
             // 
             // dtxtMinDistMean
             // 
-            dtxtMinDistMean.Location = new Point(93, 255);
+            dtxtMinDistMean.Location = new Point(120, 304);
+            dtxtMinDistMean.Margin = new Padding(4);
             dtxtMinDistMean.Name = "dtxtMinDistMean";
-            dtxtMinDistMean.Size = new Size(97, 23);
+            dtxtMinDistMean.Size = new Size(124, 27);
             dtxtMinDistMean.TabIndex = 33;
             dtxtMinDistMean.Text = "0";
             // 
             // dtxtMaxAnisometry
             // 
-            dtxtMaxAnisometry.Location = new Point(286, 213);
+            dtxtMaxAnisometry.Location = new Point(369, 254);
+            dtxtMaxAnisometry.Margin = new Padding(4);
             dtxtMaxAnisometry.Name = "dtxtMaxAnisometry";
-            dtxtMaxAnisometry.Size = new Size(97, 23);
+            dtxtMaxAnisometry.Size = new Size(124, 27);
             dtxtMaxAnisometry.TabIndex = 32;
             dtxtMaxAnisometry.Text = "0";
             // 
             // dtxtMinAnisometry
             // 
-            dtxtMinAnisometry.Location = new Point(93, 213);
+            dtxtMinAnisometry.Location = new Point(120, 254);
+            dtxtMinAnisometry.Margin = new Padding(4);
             dtxtMinAnisometry.Name = "dtxtMinAnisometry";
-            dtxtMinAnisometry.Size = new Size(97, 23);
+            dtxtMinAnisometry.Size = new Size(124, 27);
             dtxtMinAnisometry.TabIndex = 31;
             dtxtMinAnisometry.Text = "0";
             // 
             // dtxtMaxContlength
             // 
-            dtxtMaxContlength.Location = new Point(286, 171);
+            dtxtMaxContlength.Location = new Point(369, 204);
+            dtxtMaxContlength.Margin = new Padding(4);
             dtxtMaxContlength.Name = "dtxtMaxContlength";
-            dtxtMaxContlength.Size = new Size(97, 23);
+            dtxtMaxContlength.Size = new Size(124, 27);
             dtxtMaxContlength.TabIndex = 30;
             dtxtMaxContlength.Text = "0";
             // 
             // label1
             // 
             label1.AutoSize = true;
-            label1.Location = new Point(2, 0);
-            label1.Margin = new Padding(2, 0, 2, 0);
-            label1.MaximumSize = new Size(0, 28);
-            label1.MinimumSize = new Size(0, 28);
+            label1.Location = new Point(3, 0);
+            label1.MaximumSize = new Size(0, 33);
+            label1.MinimumSize = new Size(0, 33);
             label1.Name = "label1";
-            label1.Size = new Size(68, 28);
+            label1.Size = new Size(84, 33);
             label1.TabIndex = 0;
             label1.Text = "鏈�灏忕伆搴﹀��";
             label1.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtMinThreshold
             // 
-            dtxtMinThreshold.Location = new Point(92, 3);
-            dtxtMinThreshold.Margin = new Padding(2, 3, 2, 3);
+            dtxtMinThreshold.Location = new Point(119, 4);
+            dtxtMinThreshold.Margin = new Padding(3, 4, 3, 4);
             dtxtMinThreshold.Name = "dtxtMinThreshold";
-            dtxtMinThreshold.Size = new Size(99, 23);
+            dtxtMinThreshold.Size = new Size(126, 27);
             dtxtMinThreshold.TabIndex = 5;
             dtxtMinThreshold.Text = "0";
             // 
             // label2
             // 
             label2.AutoSize = true;
-            label2.Location = new Point(195, 0);
-            label2.Margin = new Padding(2, 0, 2, 0);
-            label2.MaximumSize = new Size(0, 28);
-            label2.MinimumSize = new Size(0, 28);
+            label2.Location = new Point(252, 0);
+            label2.MaximumSize = new Size(0, 33);
+            label2.MinimumSize = new Size(0, 33);
             label2.Name = "label2";
-            label2.Size = new Size(68, 28);
+            label2.Size = new Size(84, 33);
             label2.TabIndex = 1;
             label2.Text = "鏈�澶х伆搴﹀��";
             label2.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtMaxThreshold
             // 
-            dtxtMaxThreshold.Location = new Point(285, 3);
-            dtxtMaxThreshold.Margin = new Padding(2, 3, 2, 3);
+            dtxtMaxThreshold.Location = new Point(368, 4);
+            dtxtMaxThreshold.Margin = new Padding(3, 4, 3, 4);
             dtxtMaxThreshold.Name = "dtxtMaxThreshold";
-            dtxtMaxThreshold.Size = new Size(98, 23);
+            dtxtMaxThreshold.Size = new Size(125, 27);
             dtxtMaxThreshold.TabIndex = 6;
             dtxtMaxThreshold.Text = "255";
             // 
             // label3
             // 
             label3.AutoSize = true;
-            label3.Location = new Point(2, 42);
-            label3.Margin = new Padding(2, 0, 2, 0);
-            label3.MaximumSize = new Size(0, 28);
-            label3.MinimumSize = new Size(0, 28);
+            label3.Location = new Point(3, 50);
+            label3.MaximumSize = new Size(0, 33);
+            label3.MinimumSize = new Size(0, 33);
             label3.Name = "label3";
-            label3.Size = new Size(56, 28);
+            label3.Size = new Size(69, 33);
             label3.TabIndex = 2;
             label3.Text = "鏈�灏忛潰绉�";
             label3.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtMinArea
             // 
-            dtxtMinArea.Location = new Point(92, 45);
-            dtxtMinArea.Margin = new Padding(2, 3, 2, 3);
+            dtxtMinArea.Location = new Point(119, 54);
+            dtxtMinArea.Margin = new Padding(3, 4, 3, 4);
             dtxtMinArea.Name = "dtxtMinArea";
-            dtxtMinArea.Size = new Size(99, 23);
+            dtxtMinArea.Size = new Size(126, 27);
             dtxtMinArea.TabIndex = 7;
             dtxtMinArea.Text = "0";
             // 
             // label4
             // 
             label4.AutoSize = true;
-            label4.Location = new Point(195, 42);
-            label4.Margin = new Padding(2, 0, 2, 0);
-            label4.MaximumSize = new Size(0, 28);
-            label4.MinimumSize = new Size(0, 28);
+            label4.Location = new Point(252, 50);
+            label4.MaximumSize = new Size(0, 33);
+            label4.MinimumSize = new Size(0, 33);
             label4.Name = "label4";
-            label4.Size = new Size(56, 28);
+            label4.Size = new Size(69, 33);
             label4.TabIndex = 3;
             label4.Text = "鏈�澶ч潰绉�";
             label4.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtMaxArea
             // 
-            dtxtMaxArea.Location = new Point(285, 45);
-            dtxtMaxArea.Margin = new Padding(2, 3, 2, 3);
+            dtxtMaxArea.Location = new Point(368, 54);
+            dtxtMaxArea.Margin = new Padding(3, 4, 3, 4);
             dtxtMaxArea.Name = "dtxtMaxArea";
-            dtxtMaxArea.Size = new Size(98, 23);
+            dtxtMaxArea.Size = new Size(125, 27);
             dtxtMaxArea.TabIndex = 8;
             dtxtMaxArea.Text = "0";
             // 
             // label10
             // 
             label10.AutoSize = true;
-            label10.Location = new Point(2, 84);
-            label10.Margin = new Padding(2, 0, 2, 0);
-            label10.MaximumSize = new Size(0, 28);
-            label10.MinimumSize = new Size(0, 28);
+            label10.Location = new Point(3, 100);
+            label10.MaximumSize = new Size(0, 33);
+            label10.MinimumSize = new Size(0, 33);
             label10.Name = "label10";
-            label10.Size = new Size(75, 28);
+            label10.Size = new Size(93, 33);
             label10.TabIndex = 9;
             label10.Text = "鏈�灏忕旱鍧愭爣Y";
             label10.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtMinRow
             // 
-            dtxtMinRow.Location = new Point(92, 87);
-            dtxtMinRow.Margin = new Padding(2, 3, 2, 3);
+            dtxtMinRow.Location = new Point(119, 104);
+            dtxtMinRow.Margin = new Padding(3, 4, 3, 4);
             dtxtMinRow.Name = "dtxtMinRow";
-            dtxtMinRow.Size = new Size(99, 23);
+            dtxtMinRow.Size = new Size(126, 27);
             dtxtMinRow.TabIndex = 9;
             dtxtMinRow.Text = "0";
             // 
             // label11
             // 
             label11.AutoSize = true;
-            label11.Location = new Point(195, 84);
-            label11.Margin = new Padding(2, 0, 2, 0);
-            label11.MaximumSize = new Size(0, 28);
-            label11.MinimumSize = new Size(0, 28);
+            label11.Location = new Point(252, 100);
+            label11.MaximumSize = new Size(0, 33);
+            label11.MinimumSize = new Size(0, 33);
             label11.Name = "label11";
-            label11.Size = new Size(75, 28);
+            label11.Size = new Size(93, 33);
             label11.TabIndex = 10;
             label11.Text = "鏈�澶х旱鍧愭爣Y";
             label11.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtMaxRow
             // 
-            dtxtMaxRow.Location = new Point(285, 87);
-            dtxtMaxRow.Margin = new Padding(2, 3, 2, 3);
+            dtxtMaxRow.Location = new Point(368, 104);
+            dtxtMaxRow.Margin = new Padding(3, 4, 3, 4);
             dtxtMaxRow.Name = "dtxtMaxRow";
-            dtxtMaxRow.Size = new Size(98, 23);
+            dtxtMaxRow.Size = new Size(125, 27);
             dtxtMaxRow.TabIndex = 9;
             dtxtMaxRow.Text = "0";
             // 
             // label12
             // 
             label12.AutoSize = true;
-            label12.Location = new Point(2, 126);
-            label12.Margin = new Padding(2, 0, 2, 0);
-            label12.MaximumSize = new Size(0, 28);
-            label12.MinimumSize = new Size(0, 28);
+            label12.Location = new Point(3, 150);
+            label12.MaximumSize = new Size(0, 33);
+            label12.MinimumSize = new Size(0, 33);
             label12.Name = "label12";
-            label12.Size = new Size(76, 28);
+            label12.Size = new Size(94, 33);
             label12.TabIndex = 11;
             label12.Text = "鏈�灏忔í鍧愭爣X";
             label12.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtMinColumn
             // 
-            dtxtMinColumn.Location = new Point(92, 129);
-            dtxtMinColumn.Margin = new Padding(2, 3, 2, 3);
+            dtxtMinColumn.Location = new Point(119, 154);
+            dtxtMinColumn.Margin = new Padding(3, 4, 3, 4);
             dtxtMinColumn.Name = "dtxtMinColumn";
-            dtxtMinColumn.Size = new Size(99, 23);
+            dtxtMinColumn.Size = new Size(126, 27);
             dtxtMinColumn.TabIndex = 9;
             dtxtMinColumn.Text = "0";
             // 
             // label13
             // 
             label13.AutoSize = true;
-            label13.Location = new Point(195, 126);
-            label13.Margin = new Padding(2, 0, 2, 0);
-            label13.MaximumSize = new Size(0, 28);
-            label13.MinimumSize = new Size(0, 28);
+            label13.Location = new Point(252, 150);
+            label13.MaximumSize = new Size(0, 33);
+            label13.MinimumSize = new Size(0, 33);
             label13.Name = "label13";
-            label13.Size = new Size(76, 28);
+            label13.Size = new Size(94, 33);
             label13.TabIndex = 12;
             label13.Text = "鏈�澶фí鍧愭爣X";
             label13.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtMaxColumn
             // 
-            dtxtMaxColumn.Location = new Point(285, 129);
-            dtxtMaxColumn.Margin = new Padding(2, 3, 2, 3);
+            dtxtMaxColumn.Location = new Point(368, 154);
+            dtxtMaxColumn.Margin = new Padding(3, 4, 3, 4);
             dtxtMaxColumn.Name = "dtxtMaxColumn";
-            dtxtMaxColumn.Size = new Size(98, 23);
+            dtxtMaxColumn.Size = new Size(125, 27);
             dtxtMaxColumn.TabIndex = 9;
             dtxtMaxColumn.Text = "0";
             // 
             // label19
             // 
             label19.AutoSize = true;
-            label19.Location = new Point(3, 462);
+            label19.Location = new Point(4, 550);
+            label19.Margin = new Padding(4, 0, 4, 0);
             label19.Name = "label19";
-            label19.Size = new Size(56, 17);
+            label19.Size = new Size(69, 20);
             label19.TabIndex = 19;
             label19.Text = "鏈�灏忔暟閲�";
             // 
             // dtxtMinCount
             // 
-            dtxtMinCount.Location = new Point(93, 465);
+            dtxtMinCount.Location = new Point(120, 554);
+            dtxtMinCount.Margin = new Padding(4);
             dtxtMinCount.Name = "dtxtMinCount";
-            dtxtMinCount.Size = new Size(97, 23);
+            dtxtMinCount.Size = new Size(124, 27);
             dtxtMinCount.TabIndex = 17;
             dtxtMinCount.Text = "0";
             // 
             // label20
             // 
             label20.AutoSize = true;
-            label20.Location = new Point(196, 462);
+            label20.Location = new Point(253, 550);
+            label20.Margin = new Padding(4, 0, 4, 0);
             label20.Name = "label20";
-            label20.Size = new Size(56, 17);
+            label20.Size = new Size(69, 20);
             label20.TabIndex = 20;
             label20.Text = "鏈�澶ф暟閲�";
             // 
             // dtxtMaxCount
             // 
-            dtxtMaxCount.Location = new Point(286, 465);
+            dtxtMaxCount.Location = new Point(369, 554);
+            dtxtMaxCount.Margin = new Padding(4);
             dtxtMaxCount.Name = "dtxtMaxCount";
-            dtxtMaxCount.Size = new Size(97, 23);
+            dtxtMaxCount.Size = new Size(124, 27);
             dtxtMaxCount.TabIndex = 18;
             dtxtMaxCount.Text = "9999";
             // 
             // label16
             // 
             label16.AutoSize = true;
-            label16.Location = new Point(2, 378);
-            label16.Margin = new Padding(2, 0, 2, 0);
-            label16.MaximumSize = new Size(0, 28);
-            label16.MinimumSize = new Size(0, 28);
+            label16.Location = new Point(3, 450);
+            label16.MaximumSize = new Size(0, 33);
+            label16.MinimumSize = new Size(0, 33);
             label16.Name = "label16";
-            label16.Size = new Size(68, 28);
+            label16.Size = new Size(84, 33);
             label16.TabIndex = 15;
             label16.Text = "鏈�灏忕煩褰㈠害";
             label16.TextAlign = ContentAlignment.MiddleCenter;
@@ -505,173 +507,180 @@
             // label14
             // 
             label14.AutoSize = true;
-            label14.Location = new Point(2, 336);
-            label14.Margin = new Padding(2, 0, 2, 0);
-            label14.MaximumSize = new Size(0, 28);
-            label14.MinimumSize = new Size(0, 28);
+            label14.Location = new Point(3, 400);
+            label14.MaximumSize = new Size(0, 33);
+            label14.MinimumSize = new Size(0, 33);
             label14.Name = "label14";
-            label14.Size = new Size(56, 28);
+            label14.Size = new Size(69, 33);
             label14.TabIndex = 13;
             label14.Text = "鏈�灏忓渾搴�";
             label14.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtMinRectangularity
             // 
-            dtxtMinRectangularity.Location = new Point(92, 381);
-            dtxtMinRectangularity.Margin = new Padding(2, 3, 2, 3);
+            dtxtMinRectangularity.Location = new Point(119, 454);
+            dtxtMinRectangularity.Margin = new Padding(3, 4, 3, 4);
             dtxtMinRectangularity.Name = "dtxtMinRectangularity";
-            dtxtMinRectangularity.Size = new Size(98, 23);
+            dtxtMinRectangularity.Size = new Size(125, 27);
             dtxtMinRectangularity.TabIndex = 9;
             dtxtMinRectangularity.Text = "0";
             // 
             // dtxtMinCircularity
             // 
-            dtxtMinCircularity.Location = new Point(92, 339);
-            dtxtMinCircularity.Margin = new Padding(2, 3, 2, 3);
+            dtxtMinCircularity.Location = new Point(119, 404);
+            dtxtMinCircularity.Margin = new Padding(3, 4, 3, 4);
             dtxtMinCircularity.Name = "dtxtMinCircularity";
-            dtxtMinCircularity.Size = new Size(98, 23);
+            dtxtMinCircularity.Size = new Size(125, 27);
             dtxtMinCircularity.TabIndex = 9;
             dtxtMinCircularity.Text = "0";
             // 
             // label17
             // 
             label17.AutoSize = true;
-            label17.Location = new Point(195, 378);
-            label17.Margin = new Padding(2, 0, 2, 0);
-            label17.MaximumSize = new Size(0, 28);
-            label17.MinimumSize = new Size(0, 28);
+            label17.Location = new Point(252, 450);
+            label17.MaximumSize = new Size(0, 33);
+            label17.MinimumSize = new Size(0, 33);
             label17.Name = "label17";
-            label17.Size = new Size(68, 28);
+            label17.Size = new Size(84, 33);
             label17.TabIndex = 16;
             label17.Text = "鏈�澶х煩褰㈠害";
             label17.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtMaxRectangularity
             // 
-            dtxtMaxRectangularity.Location = new Point(285, 381);
-            dtxtMaxRectangularity.Margin = new Padding(2, 3, 2, 3);
+            dtxtMaxRectangularity.Location = new Point(368, 454);
+            dtxtMaxRectangularity.Margin = new Padding(3, 4, 3, 4);
             dtxtMaxRectangularity.Name = "dtxtMaxRectangularity";
-            dtxtMaxRectangularity.Size = new Size(98, 23);
+            dtxtMaxRectangularity.Size = new Size(125, 27);
             dtxtMaxRectangularity.TabIndex = 10;
             dtxtMaxRectangularity.Text = "1";
             // 
             // label15
             // 
             label15.AutoSize = true;
-            label15.Location = new Point(195, 336);
-            label15.Margin = new Padding(2, 0, 2, 0);
-            label15.MaximumSize = new Size(0, 28);
-            label15.MinimumSize = new Size(0, 28);
+            label15.Location = new Point(252, 400);
+            label15.MaximumSize = new Size(0, 33);
+            label15.MinimumSize = new Size(0, 33);
             label15.Name = "label15";
-            label15.Size = new Size(56, 28);
+            label15.Size = new Size(69, 33);
             label15.TabIndex = 14;
             label15.Text = "鏈�澶у渾搴�";
             label15.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtMaxCircularity
             // 
-            dtxtMaxCircularity.Location = new Point(285, 339);
-            dtxtMaxCircularity.Margin = new Padding(2, 3, 2, 3);
+            dtxtMaxCircularity.Location = new Point(368, 404);
+            dtxtMaxCircularity.Margin = new Padding(3, 4, 3, 4);
             dtxtMaxCircularity.Name = "dtxtMaxCircularity";
-            dtxtMaxCircularity.Size = new Size(98, 23);
+            dtxtMaxCircularity.Size = new Size(125, 27);
             dtxtMaxCircularity.TabIndex = 9;
             dtxtMaxCircularity.Text = "1";
             // 
             // label25
             // 
             label25.AutoSize = true;
-            label25.Location = new Point(3, 168);
+            label25.Location = new Point(4, 200);
+            label25.Margin = new Padding(4, 0, 4, 0);
             label25.Name = "label25";
-            label25.Size = new Size(56, 17);
+            label25.Size = new Size(69, 20);
             label25.TabIndex = 21;
             label25.Text = "鏈�灏忓懆闀�";
             // 
             // label26
             // 
             label26.AutoSize = true;
-            label26.Location = new Point(3, 210);
+            label26.Location = new Point(4, 250);
+            label26.Margin = new Padding(4, 0, 4, 0);
             label26.Name = "label26";
-            label26.Size = new Size(68, 17);
+            label26.Size = new Size(84, 20);
             label26.TabIndex = 22;
             label26.Text = "鏈�灏忓楂樻瘮";
             // 
             // label27
             // 
             label27.AutoSize = true;
-            label27.Location = new Point(3, 252);
+            label27.Location = new Point(4, 300);
+            label27.Margin = new Padding(4, 0, 4, 0);
             label27.Name = "label27";
-            label27.Size = new Size(80, 17);
+            label27.Size = new Size(99, 20);
             label27.TabIndex = 23;
             label27.Text = "杈硅窛鏈�灏忓钩鍧�";
             // 
             // label28
             // 
             label28.AutoSize = true;
-            label28.Location = new Point(3, 294);
+            label28.Location = new Point(4, 350);
+            label28.Margin = new Padding(4, 0, 4, 0);
             label28.Name = "label28";
-            label28.Size = new Size(80, 17);
+            label28.Size = new Size(99, 20);
             label28.TabIndex = 24;
             label28.Text = "杈硅窛鏈�灏忔柟宸�";
             // 
             // label29
             // 
             label29.AutoSize = true;
-            label29.Location = new Point(196, 168);
+            label29.Location = new Point(253, 200);
+            label29.Margin = new Padding(4, 0, 4, 0);
             label29.Name = "label29";
-            label29.Size = new Size(56, 17);
+            label29.Size = new Size(69, 20);
             label29.TabIndex = 25;
             label29.Text = "鏈�澶у懆闀�";
             // 
             // label30
             // 
             label30.AutoSize = true;
-            label30.Location = new Point(196, 210);
+            label30.Location = new Point(253, 250);
+            label30.Margin = new Padding(4, 0, 4, 0);
             label30.Name = "label30";
-            label30.Size = new Size(68, 17);
+            label30.Size = new Size(84, 20);
             label30.TabIndex = 26;
             label30.Text = "鏈�澶у楂樻瘮";
             // 
             // label31
             // 
             label31.AutoSize = true;
-            label31.Location = new Point(196, 252);
+            label31.Location = new Point(253, 300);
+            label31.Margin = new Padding(4, 0, 4, 0);
             label31.Name = "label31";
-            label31.Size = new Size(80, 17);
+            label31.Size = new Size(99, 20);
             label31.TabIndex = 27;
             label31.Text = "杈硅窛鏈�澶у钩鍧�";
             // 
             // label32
             // 
             label32.AutoSize = true;
-            label32.Location = new Point(196, 294);
+            label32.Location = new Point(253, 350);
+            label32.Margin = new Padding(4, 0, 4, 0);
             label32.Name = "label32";
-            label32.Size = new Size(80, 17);
+            label32.Size = new Size(99, 20);
             label32.TabIndex = 28;
             label32.Text = "杈硅窛鏈�澶ф柟宸�";
             // 
             // dtxtMinContlength
             // 
-            dtxtMinContlength.Location = new Point(93, 171);
+            dtxtMinContlength.Location = new Point(120, 204);
+            dtxtMinContlength.Margin = new Padding(4);
             dtxtMinContlength.Name = "dtxtMinContlength";
-            dtxtMinContlength.Size = new Size(97, 23);
+            dtxtMinContlength.Size = new Size(124, 27);
             dtxtMinContlength.TabIndex = 29;
             dtxtMinContlength.Text = "0";
             // 
             // pnlInputImage
             // 
             pnlInputImage.Dock = DockStyle.Fill;
-            pnlInputImage.Location = new Point(3, 3);
-            pnlInputImage.Margin = new Padding(4);
+            pnlInputImage.Location = new Point(4, 4);
+            pnlInputImage.Margin = new Padding(5);
             pnlInputImage.Name = "pnlInputImage";
-            pnlInputImage.Size = new Size(626, 516);
+            pnlInputImage.Size = new Size(807, 611);
             pnlInputImage.TabIndex = 44;
             // 
             // TopToolStrip
             // 
+            TopToolStrip.ImageScalingSize = new Size(20, 20);
             TopToolStrip.Items.AddRange(new ToolStripItem[] { btnRun, btnLoadImage, btnSaveParas, btnLoadParas });
             TopToolStrip.Location = new Point(0, 0);
             TopToolStrip.Name = "TopToolStrip";
-            TopToolStrip.Size = new Size(1044, 25);
+            TopToolStrip.Size = new Size(1342, 27);
             TopToolStrip.TabIndex = 45;
             TopToolStrip.Text = "toolStrip1";
             // 
@@ -680,7 +689,7 @@
             btnRun.BackgroundImageLayout = ImageLayout.Zoom;
             btnRun.ImageTransparentColor = Color.Magenta;
             btnRun.Name = "btnRun";
-            btnRun.Size = new Size(36, 22);
+            btnRun.Size = new Size(43, 24);
             btnRun.Text = "杩愯";
             btnRun.Click += btnRun_Click;
             // 
@@ -688,7 +697,7 @@
             // 
             btnLoadImage.ImageTransparentColor = Color.Magenta;
             btnLoadImage.Name = "btnLoadImage";
-            btnLoadImage.Size = new Size(36, 22);
+            btnLoadImage.Size = new Size(43, 24);
             btnLoadImage.Text = "瀵煎浘";
             btnLoadImage.Click += btnLoadImage_Click;
             // 
@@ -696,7 +705,7 @@
             // 
             btnSaveParas.ImageTransparentColor = Color.Magenta;
             btnSaveParas.Name = "btnSaveParas";
-            btnSaveParas.Size = new Size(36, 22);
+            btnSaveParas.Size = new Size(43, 24);
             btnSaveParas.Text = "淇濆瓨";
             btnSaveParas.Click += btnSaveParas_Click;
             // 
@@ -704,35 +713,37 @@
             // 
             btnLoadParas.ImageTransparentColor = Color.Magenta;
             btnLoadParas.Name = "btnLoadParas";
-            btnLoadParas.Size = new Size(36, 22);
+            btnLoadParas.Size = new Size(43, 24);
             btnLoadParas.Text = "鍔犺浇";
             btnLoadParas.Click += btnLoadParas_Click;
             // 
             // BtmStatusStrip
             // 
+            BtmStatusStrip.ImageScalingSize = new Size(20, 20);
             BtmStatusStrip.Items.AddRange(new ToolStripItem[] { lblResult, lblMsg, lblRunTime });
-            BtmStatusStrip.Location = new Point(0, 577);
+            BtmStatusStrip.Location = new Point(0, 679);
             BtmStatusStrip.Name = "BtmStatusStrip";
-            BtmStatusStrip.Size = new Size(1044, 22);
+            BtmStatusStrip.Padding = new Padding(1, 0, 18, 0);
+            BtmStatusStrip.Size = new Size(1342, 26);
             BtmStatusStrip.TabIndex = 46;
             BtmStatusStrip.Text = "statusStrip1";
             // 
             // lblResult
             // 
             lblResult.Name = "lblResult";
-            lblResult.Size = new Size(34, 17);
+            lblResult.Size = new Size(42, 20);
             lblResult.Text = "True";
             // 
             // lblMsg
             // 
             lblMsg.Name = "lblMsg";
-            lblMsg.Size = new Size(56, 17);
+            lblMsg.Size = new Size(69, 20);
             lblMsg.Text = "杩愯鎴愬姛";
             // 
             // lblRunTime
             // 
             lblRunTime.Name = "lblRunTime";
-            lblRunTime.Size = new Size(32, 17);
+            lblRunTime.Size = new Size(39, 20);
             lblRunTime.Text = "0ms";
             // 
             // parasTabControl
@@ -742,18 +753,20 @@
             parasTabControl.Controls.Add(tabPage2);
             parasTabControl.Dock = DockStyle.Fill;
             parasTabControl.Location = new Point(0, 0);
+            parasTabControl.Margin = new Padding(4);
             parasTabControl.Name = "parasTabControl";
             parasTabControl.SelectedIndex = 0;
-            parasTabControl.Size = new Size(400, 552);
+            parasTabControl.Size = new Size(514, 652);
             parasTabControl.TabIndex = 48;
             // 
             // tabPage1
             // 
             tabPage1.Controls.Add(tablePanelParas);
-            tabPage1.Location = new Point(4, 26);
+            tabPage1.Location = new Point(4, 29);
+            tabPage1.Margin = new Padding(4);
             tabPage1.Name = "tabPage1";
-            tabPage1.Padding = new Padding(3);
-            tabPage1.Size = new Size(392, 522);
+            tabPage1.Padding = new Padding(4);
+            tabPage1.Size = new Size(506, 619);
             tabPage1.TabIndex = 0;
             tabPage1.Text = "杈撳叆鍙傛暟";
             tabPage1.UseVisualStyleBackColor = true;
@@ -761,9 +774,10 @@
             // tabPage5
             // 
             tabPage5.Controls.Add(tableLayoutPanel2);
-            tabPage5.Location = new Point(4, 26);
+            tabPage5.Location = new Point(4, 29);
+            tabPage5.Margin = new Padding(4);
             tabPage5.Name = "tabPage5";
-            tabPage5.Size = new Size(392, 522);
+            tabPage5.Size = new Size(506, 619);
             tabPage5.TabIndex = 2;
             tabPage5.Text = "杩愯鍙傛暟";
             tabPage5.UseVisualStyleBackColor = true;
@@ -771,9 +785,9 @@
             // tableLayoutPanel2
             // 
             tableLayoutPanel2.ColumnCount = 4;
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 60F));
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 150F));
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 40F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 77F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 193F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 51F));
             tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
             tableLayoutPanel2.Controls.Add(cmbTypeRoi, 1, 0);
             tableLayoutPanel2.Controls.Add(label21, 0, 0);
@@ -786,21 +800,23 @@
             tableLayoutPanel2.Controls.Add(tableLayoutPanel3, 3, 2);
             tableLayoutPanel2.Dock = DockStyle.Fill;
             tableLayoutPanel2.Location = new Point(0, 0);
+            tableLayoutPanel2.Margin = new Padding(4);
             tableLayoutPanel2.Name = "tableLayoutPanel2";
             tableLayoutPanel2.RowCount = 3;
-            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
-            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
             tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            tableLayoutPanel2.Size = new Size(392, 522);
+            tableLayoutPanel2.Size = new Size(506, 619);
             tableLayoutPanel2.TabIndex = 4;
             // 
             // cmbTypeRoi
             // 
             cmbTypeRoi.Dock = DockStyle.Fill;
             cmbTypeRoi.FormattingEnabled = true;
-            cmbTypeRoi.Location = new Point(63, 3);
+            cmbTypeRoi.Location = new Point(81, 4);
+            cmbTypeRoi.Margin = new Padding(4);
             cmbTypeRoi.Name = "cmbTypeRoi";
-            cmbTypeRoi.Size = new Size(144, 25);
+            cmbTypeRoi.Size = new Size(185, 28);
             cmbTypeRoi.TabIndex = 1;
             cmbTypeRoi.SelectedIndexChanged += cmbTypeRoi_SelectedIndexChanged;
             // 
@@ -808,9 +824,10 @@
             // 
             label21.AutoSize = true;
             label21.Dock = DockStyle.Fill;
-            label21.Location = new Point(3, 0);
+            label21.Location = new Point(4, 0);
+            label21.Margin = new Padding(4, 0, 4, 0);
             label21.Name = "label21";
-            label21.Size = new Size(54, 30);
+            label21.Size = new Size(69, 35);
             label21.TabIndex = 3;
             label21.Text = "ROI";
             label21.TextAlign = ContentAlignment.MiddleCenter;
@@ -819,9 +836,10 @@
             // 
             label22.AutoSize = true;
             label22.Dock = DockStyle.Fill;
-            label22.Location = new Point(3, 30);
+            label22.Location = new Point(4, 35);
+            label22.Margin = new Padding(4, 0, 4, 0);
             label22.Name = "label22";
-            label22.Size = new Size(54, 30);
+            label22.Size = new Size(69, 35);
             label22.TabIndex = 4;
             label22.Text = "Fixture";
             label22.TextAlign = ContentAlignment.MiddleCenter;
@@ -830,9 +848,10 @@
             // 
             cmbFixture.Dock = DockStyle.Fill;
             cmbFixture.FormattingEnabled = true;
-            cmbFixture.Location = new Point(63, 33);
+            cmbFixture.Location = new Point(81, 39);
+            cmbFixture.Margin = new Padding(4);
             cmbFixture.Name = "cmbFixture";
-            cmbFixture.Size = new Size(144, 25);
+            cmbFixture.Size = new Size(185, 28);
             cmbFixture.TabIndex = 5;
             cmbFixture.SelectedIndexChanged += cmbFixture_SelectedIndexChanged;
             // 
@@ -840,9 +859,10 @@
             // 
             ckbDrawRoi.AutoSize = true;
             ckbDrawRoi.CheckAlign = ContentAlignment.MiddleCenter;
-            ckbDrawRoi.Location = new Point(213, 3);
+            ckbDrawRoi.Location = new Point(274, 4);
+            ckbDrawRoi.Margin = new Padding(4);
             ckbDrawRoi.Name = "ckbDrawRoi";
-            ckbDrawRoi.Size = new Size(15, 14);
+            ckbDrawRoi.Size = new Size(18, 17);
             ckbDrawRoi.TabIndex = 2;
             ckbDrawRoi.UseVisualStyleBackColor = true;
             ckbDrawRoi.CheckedChanged += ckbDrawRoi_CheckedChanged;
@@ -851,9 +871,10 @@
             // 
             ckbListAfter.Dock = DockStyle.Fill;
             ckbListAfter.FormattingEnabled = true;
-            ckbListAfter.Location = new Point(63, 63);
+            ckbListAfter.Location = new Point(81, 74);
+            ckbListAfter.Margin = new Padding(4);
             ckbListAfter.Name = "ckbListAfter";
-            ckbListAfter.Size = new Size(144, 456);
+            ckbListAfter.Size = new Size(185, 541);
             ckbListAfter.TabIndex = 6;
             // 
             // tableLayoutPanel1
@@ -865,23 +886,25 @@
             tableLayoutPanel1.Controls.Add(btnUp, 0, 2);
             tableLayoutPanel1.Controls.Add(btnDown, 0, 3);
             tableLayoutPanel1.Dock = DockStyle.Fill;
-            tableLayoutPanel1.Location = new Point(213, 63);
+            tableLayoutPanel1.Location = new Point(274, 74);
+            tableLayoutPanel1.Margin = new Padding(4);
             tableLayoutPanel1.Name = "tableLayoutPanel1";
             tableLayoutPanel1.RowCount = 5;
-            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
-            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
-            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
-            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
+            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
             tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            tableLayoutPanel1.Size = new Size(34, 456);
+            tableLayoutPanel1.Size = new Size(43, 541);
             tableLayoutPanel1.TabIndex = 7;
             // 
             // btnAdd
             // 
             btnAdd.Dock = DockStyle.Fill;
-            btnAdd.Location = new Point(3, 3);
+            btnAdd.Location = new Point(4, 4);
+            btnAdd.Margin = new Padding(4);
             btnAdd.Name = "btnAdd";
-            btnAdd.Size = new Size(28, 24);
+            btnAdd.Size = new Size(35, 27);
             btnAdd.TabIndex = 0;
             btnAdd.Text = "+";
             btnAdd.UseVisualStyleBackColor = true;
@@ -889,9 +912,10 @@
             // btnDel
             // 
             btnDel.Dock = DockStyle.Fill;
-            btnDel.Location = new Point(3, 33);
+            btnDel.Location = new Point(4, 39);
+            btnDel.Margin = new Padding(4);
             btnDel.Name = "btnDel";
-            btnDel.Size = new Size(28, 24);
+            btnDel.Size = new Size(35, 27);
             btnDel.TabIndex = 1;
             btnDel.Text = "-";
             btnDel.UseVisualStyleBackColor = true;
@@ -899,9 +923,10 @@
             // btnUp
             // 
             btnUp.Dock = DockStyle.Fill;
-            btnUp.Location = new Point(3, 63);
+            btnUp.Location = new Point(4, 74);
+            btnUp.Margin = new Padding(4);
             btnUp.Name = "btnUp";
-            btnUp.Size = new Size(28, 24);
+            btnUp.Size = new Size(35, 27);
             btnUp.TabIndex = 2;
             btnUp.Text = "鈫�";
             btnUp.UseVisualStyleBackColor = true;
@@ -909,9 +934,10 @@
             // btnDown
             // 
             btnDown.Dock = DockStyle.Fill;
-            btnDown.Location = new Point(3, 93);
+            btnDown.Location = new Point(4, 109);
+            btnDown.Margin = new Padding(4);
             btnDown.Name = "btnDown";
-            btnDown.Size = new Size(28, 24);
+            btnDown.Size = new Size(35, 27);
             btnDown.TabIndex = 3;
             btnDown.Text = "鈫�";
             btnDown.UseVisualStyleBackColor = true;
@@ -920,9 +946,10 @@
             // 
             label24.AutoSize = true;
             label24.Dock = DockStyle.Fill;
-            label24.Location = new Point(3, 60);
+            label24.Location = new Point(4, 70);
+            label24.Margin = new Padding(4, 0, 4, 0);
             label24.Name = "label24";
-            label24.Size = new Size(54, 462);
+            label24.Size = new Size(69, 549);
             label24.TabIndex = 8;
             label24.Text = "褰㈡�佸";
             label24.TextAlign = ContentAlignment.TopCenter;
@@ -930,46 +957,50 @@
             // tableLayoutPanel3
             // 
             tableLayoutPanel3.ColumnCount = 1;
-            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 60F));
+            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 175F));
             tableLayoutPanel3.Controls.Add(cmbProcessType, 0, 1);
             tableLayoutPanel3.Controls.Add(cmbShapeType, 0, 2);
             tableLayoutPanel3.Controls.Add(lblTips, 0, 3);
             tableLayoutPanel3.Controls.Add(tableLayoutPanel4, 0, 0);
             tableLayoutPanel3.Dock = DockStyle.Fill;
-            tableLayoutPanel3.Location = new Point(253, 63);
+            tableLayoutPanel3.Location = new Point(325, 74);
+            tableLayoutPanel3.Margin = new Padding(4);
             tableLayoutPanel3.Name = "tableLayoutPanel3";
             tableLayoutPanel3.RowCount = 4;
+            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 41F));
             tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
-            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
-            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
+            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
             tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            tableLayoutPanel3.Size = new Size(136, 456);
+            tableLayoutPanel3.Size = new Size(177, 541);
             tableLayoutPanel3.TabIndex = 9;
             // 
             // cmbProcessType
             // 
             cmbProcessType.Dock = DockStyle.Fill;
             cmbProcessType.FormattingEnabled = true;
-            cmbProcessType.Location = new Point(3, 38);
+            cmbProcessType.Location = new Point(4, 45);
+            cmbProcessType.Margin = new Padding(4);
             cmbProcessType.Name = "cmbProcessType";
-            cmbProcessType.Size = new Size(130, 25);
+            cmbProcessType.Size = new Size(169, 28);
             cmbProcessType.TabIndex = 3;
             // 
             // cmbShapeType
             // 
             cmbShapeType.Dock = DockStyle.Fill;
             cmbShapeType.FormattingEnabled = true;
-            cmbShapeType.Location = new Point(3, 68);
+            cmbShapeType.Location = new Point(4, 80);
+            cmbShapeType.Margin = new Padding(4);
             cmbShapeType.Name = "cmbShapeType";
-            cmbShapeType.Size = new Size(130, 25);
+            cmbShapeType.Size = new Size(169, 28);
             cmbShapeType.TabIndex = 5;
             // 
             // lblTips
             // 
             lblTips.AutoSize = true;
-            lblTips.Location = new Point(3, 95);
+            lblTips.Location = new Point(4, 111);
+            lblTips.Margin = new Padding(4, 0, 4, 0);
             lblTips.Name = "lblTips";
-            lblTips.Size = new Size(32, 17);
+            lblTips.Size = new Size(39, 20);
             lblTips.TabIndex = 6;
             lblTips.Text = "鎻愮ず";
             // 
@@ -980,38 +1011,42 @@
             tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
             tableLayoutPanel4.Controls.Add(txtAfterProcessWidth, 0, 0);
             tableLayoutPanel4.Controls.Add(txtAfterProcessHeight, 1, 0);
-            tableLayoutPanel4.Location = new Point(3, 3);
+            tableLayoutPanel4.Location = new Point(4, 4);
+            tableLayoutPanel4.Margin = new Padding(4);
             tableLayoutPanel4.Name = "tableLayoutPanel4";
             tableLayoutPanel4.RowCount = 1;
             tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
-            tableLayoutPanel4.Size = new Size(130, 29);
+            tableLayoutPanel4.Size = new Size(167, 33);
             tableLayoutPanel4.TabIndex = 7;
             // 
             // txtAfterProcessWidth
             // 
             txtAfterProcessWidth.Dock = DockStyle.Fill;
-            txtAfterProcessWidth.Location = new Point(3, 3);
+            txtAfterProcessWidth.Location = new Point(4, 4);
+            txtAfterProcessWidth.Margin = new Padding(4);
             txtAfterProcessWidth.Name = "txtAfterProcessWidth";
-            txtAfterProcessWidth.Size = new Size(59, 23);
+            txtAfterProcessWidth.Size = new Size(75, 27);
             txtAfterProcessWidth.TabIndex = 4;
             txtAfterProcessWidth.Value = new decimal(new int[] { 3, 0, 0, 0 });
             // 
             // txtAfterProcessHeight
             // 
             txtAfterProcessHeight.Dock = DockStyle.Fill;
-            txtAfterProcessHeight.Location = new Point(68, 3);
+            txtAfterProcessHeight.Location = new Point(87, 4);
+            txtAfterProcessHeight.Margin = new Padding(4);
             txtAfterProcessHeight.Name = "txtAfterProcessHeight";
-            txtAfterProcessHeight.Size = new Size(59, 23);
+            txtAfterProcessHeight.Size = new Size(76, 27);
             txtAfterProcessHeight.TabIndex = 5;
             txtAfterProcessHeight.Value = new decimal(new int[] { 3, 0, 0, 0 });
             // 
             // tabPage2
             // 
             tabPage2.Controls.Add(tableLayoutResults);
-            tabPage2.Location = new Point(4, 26);
+            tabPage2.Location = new Point(4, 29);
+            tabPage2.Margin = new Padding(4);
             tabPage2.Name = "tabPage2";
-            tabPage2.Padding = new Padding(3);
-            tabPage2.Size = new Size(392, 522);
+            tabPage2.Padding = new Padding(4);
+            tabPage2.Size = new Size(506, 619);
             tabPage2.TabIndex = 1;
             tabPage2.Text = "杈撳嚭缁撴灉";
             tabPage2.UseVisualStyleBackColor = true;
@@ -1019,7 +1054,7 @@
             // tableLayoutResults
             // 
             tableLayoutResults.ColumnCount = 2;
-            tableLayoutResults.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 100F));
+            tableLayoutResults.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 129F));
             tableLayoutResults.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
             tableLayoutResults.Controls.Add(dtxtHeight, 1, 4);
             tableLayoutResults.Controls.Add(label9, 0, 4);
@@ -1036,8 +1071,8 @@
             tableLayoutResults.Controls.Add(label23, 0, 5);
             tableLayoutResults.Controls.Add(dtxtArea, 1, 5);
             tableLayoutResults.Dock = DockStyle.Fill;
-            tableLayoutResults.Location = new Point(3, 3);
-            tableLayoutResults.Margin = new Padding(2, 3, 2, 3);
+            tableLayoutResults.Location = new Point(4, 4);
+            tableLayoutResults.Margin = new Padding(3, 4, 3, 4);
             tableLayoutResults.Name = "tableLayoutResults";
             tableLayoutResults.RowCount = 10;
             tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
@@ -1050,29 +1085,28 @@
             tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
             tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
             tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
-            tableLayoutResults.Size = new Size(386, 516);
+            tableLayoutResults.Size = new Size(498, 611);
             tableLayoutResults.TabIndex = 1;
             // 
             // dtxtHeight
             // 
             dtxtHeight.Dock = DockStyle.Fill;
-            dtxtHeight.Location = new Point(102, 207);
-            dtxtHeight.Margin = new Padding(2, 3, 2, 3);
+            dtxtHeight.Location = new Point(132, 248);
+            dtxtHeight.Margin = new Padding(3, 4, 3, 4);
             dtxtHeight.Name = "dtxtHeight";
             dtxtHeight.ReadOnly = true;
-            dtxtHeight.Size = new Size(282, 23);
+            dtxtHeight.Size = new Size(363, 27);
             dtxtHeight.TabIndex = 9;
             // 
             // label9
             // 
             label9.AutoSize = true;
             label9.Dock = DockStyle.Fill;
-            label9.Location = new Point(2, 204);
-            label9.Margin = new Padding(2, 0, 2, 0);
-            label9.MaximumSize = new Size(0, 28);
-            label9.MinimumSize = new Size(0, 28);
+            label9.Location = new Point(3, 244);
+            label9.MaximumSize = new Size(0, 33);
+            label9.MinimumSize = new Size(0, 33);
             label9.Name = "label9";
-            label9.Size = new Size(96, 28);
+            label9.Size = new Size(123, 33);
             label9.TabIndex = 3;
             label9.Text = "楂樺害";
             label9.TextAlign = ContentAlignment.TopCenter;
@@ -1081,12 +1115,11 @@
             // 
             label5.AutoSize = true;
             label5.Dock = DockStyle.Fill;
-            label5.Location = new Point(2, 0);
-            label5.Margin = new Padding(2, 0, 2, 0);
-            label5.MaximumSize = new Size(0, 28);
-            label5.MinimumSize = new Size(0, 28);
+            label5.Location = new Point(3, 0);
+            label5.MaximumSize = new Size(0, 33);
+            label5.MinimumSize = new Size(0, 33);
             label5.Name = "label5";
-            label5.Size = new Size(96, 28);
+            label5.Size = new Size(123, 33);
             label5.TabIndex = 0;
             label5.Text = "X";
             label5.TextAlign = ContentAlignment.TopCenter;
@@ -1095,12 +1128,11 @@
             // 
             label6.AutoSize = true;
             label6.Dock = DockStyle.Fill;
-            label6.Location = new Point(2, 51);
-            label6.Margin = new Padding(2, 0, 2, 0);
-            label6.MaximumSize = new Size(0, 28);
-            label6.MinimumSize = new Size(0, 28);
+            label6.Location = new Point(3, 61);
+            label6.MaximumSize = new Size(0, 33);
+            label6.MinimumSize = new Size(0, 33);
             label6.Name = "label6";
-            label6.Size = new Size(96, 28);
+            label6.Size = new Size(123, 33);
             label6.TabIndex = 1;
             label6.Text = "Y";
             label6.TextAlign = ContentAlignment.TopCenter;
@@ -1109,12 +1141,11 @@
             // 
             label7.AutoSize = true;
             label7.Dock = DockStyle.Fill;
-            label7.Location = new Point(2, 102);
-            label7.Margin = new Padding(2, 0, 2, 0);
-            label7.MaximumSize = new Size(0, 28);
-            label7.MinimumSize = new Size(0, 28);
+            label7.Location = new Point(3, 122);
+            label7.MaximumSize = new Size(0, 33);
+            label7.MinimumSize = new Size(0, 33);
             label7.Name = "label7";
-            label7.Size = new Size(96, 28);
+            label7.Size = new Size(123, 33);
             label7.TabIndex = 2;
             label7.Text = "寮у害(rad)";
             label7.TextAlign = ContentAlignment.TopCenter;
@@ -1123,12 +1154,11 @@
             // 
             label8.AutoSize = true;
             label8.Dock = DockStyle.Fill;
-            label8.Location = new Point(2, 153);
-            label8.Margin = new Padding(2, 0, 2, 0);
-            label8.MaximumSize = new Size(0, 28);
-            label8.MinimumSize = new Size(0, 28);
+            label8.Location = new Point(3, 183);
+            label8.MaximumSize = new Size(0, 33);
+            label8.MinimumSize = new Size(0, 33);
             label8.Name = "label8";
-            label8.Size = new Size(96, 28);
+            label8.Size = new Size(123, 33);
             label8.TabIndex = 3;
             label8.Text = "瀹藉害";
             label8.TextAlign = ContentAlignment.TopCenter;
@@ -1136,50 +1166,51 @@
             // dtxtCenterX
             // 
             dtxtCenterX.Dock = DockStyle.Fill;
-            dtxtCenterX.Location = new Point(102, 3);
-            dtxtCenterX.Margin = new Padding(2, 3, 2, 3);
+            dtxtCenterX.Location = new Point(132, 4);
+            dtxtCenterX.Margin = new Padding(3, 4, 3, 4);
             dtxtCenterX.Name = "dtxtCenterX";
             dtxtCenterX.ReadOnly = true;
-            dtxtCenterX.Size = new Size(282, 23);
+            dtxtCenterX.Size = new Size(363, 27);
             dtxtCenterX.TabIndex = 5;
             // 
             // dtxtCenterY
             // 
             dtxtCenterY.Dock = DockStyle.Fill;
-            dtxtCenterY.Location = new Point(102, 54);
-            dtxtCenterY.Margin = new Padding(2, 3, 2, 3);
+            dtxtCenterY.Location = new Point(132, 65);
+            dtxtCenterY.Margin = new Padding(3, 4, 3, 4);
             dtxtCenterY.Name = "dtxtCenterY";
             dtxtCenterY.ReadOnly = true;
-            dtxtCenterY.Size = new Size(282, 23);
+            dtxtCenterY.Size = new Size(363, 27);
             dtxtCenterY.TabIndex = 6;
             // 
             // dtxtPhi
             // 
             dtxtPhi.Dock = DockStyle.Fill;
-            dtxtPhi.Location = new Point(102, 105);
-            dtxtPhi.Margin = new Padding(2, 3, 2, 3);
+            dtxtPhi.Location = new Point(132, 126);
+            dtxtPhi.Margin = new Padding(3, 4, 3, 4);
             dtxtPhi.Name = "dtxtPhi";
             dtxtPhi.ReadOnly = true;
-            dtxtPhi.Size = new Size(282, 23);
+            dtxtPhi.Size = new Size(363, 27);
             dtxtPhi.TabIndex = 7;
             // 
             // dtxtWidth
             // 
             dtxtWidth.Dock = DockStyle.Fill;
-            dtxtWidth.Location = new Point(102, 156);
-            dtxtWidth.Margin = new Padding(2, 3, 2, 3);
+            dtxtWidth.Location = new Point(132, 187);
+            dtxtWidth.Margin = new Padding(3, 4, 3, 4);
             dtxtWidth.Name = "dtxtWidth";
             dtxtWidth.ReadOnly = true;
-            dtxtWidth.Size = new Size(282, 23);
+            dtxtWidth.Size = new Size(363, 27);
             dtxtWidth.TabIndex = 8;
             // 
             // label18
             // 
             label18.AutoSize = true;
             label18.Dock = DockStyle.Fill;
-            label18.Location = new Point(3, 306);
+            label18.Location = new Point(4, 366);
+            label18.Margin = new Padding(4, 0, 4, 0);
             label18.Name = "label18";
-            label18.Size = new Size(94, 51);
+            label18.Size = new Size(121, 61);
             label18.TabIndex = 10;
             label18.Text = "鏁伴噺";
             label18.TextAlign = ContentAlignment.TopCenter;
@@ -1187,19 +1218,21 @@
             // dtxtCount
             // 
             dtxtCount.Dock = DockStyle.Fill;
-            dtxtCount.Location = new Point(103, 309);
+            dtxtCount.Location = new Point(133, 370);
+            dtxtCount.Margin = new Padding(4);
             dtxtCount.Name = "dtxtCount";
             dtxtCount.ReadOnly = true;
-            dtxtCount.Size = new Size(280, 23);
+            dtxtCount.Size = new Size(361, 27);
             dtxtCount.TabIndex = 11;
             // 
             // label23
             // 
             label23.AutoSize = true;
             label23.Dock = DockStyle.Fill;
-            label23.Location = new Point(3, 255);
+            label23.Location = new Point(4, 305);
+            label23.Margin = new Padding(4, 0, 4, 0);
             label23.Name = "label23";
-            label23.Size = new Size(94, 51);
+            label23.Size = new Size(121, 61);
             label23.TabIndex = 12;
             label23.Text = "闈㈢Н";
             label23.TextAlign = ContentAlignment.TopCenter;
@@ -1207,10 +1240,11 @@
             // dtxtArea
             // 
             dtxtArea.Dock = DockStyle.Fill;
-            dtxtArea.Location = new Point(103, 258);
+            dtxtArea.Location = new Point(133, 309);
+            dtxtArea.Margin = new Padding(4);
             dtxtArea.Name = "dtxtArea";
             dtxtArea.ReadOnly = true;
-            dtxtArea.Size = new Size(280, 23);
+            dtxtArea.Size = new Size(361, 27);
             dtxtArea.TabIndex = 13;
             // 
             // imgTabControl
@@ -1219,18 +1253,20 @@
             imgTabControl.Controls.Add(tabPageRecordImage);
             imgTabControl.Dock = DockStyle.Fill;
             imgTabControl.Location = new Point(0, 0);
+            imgTabControl.Margin = new Padding(4);
             imgTabControl.Name = "imgTabControl";
             imgTabControl.SelectedIndex = 0;
-            imgTabControl.Size = new Size(640, 552);
+            imgTabControl.Size = new Size(823, 652);
             imgTabControl.TabIndex = 49;
             // 
             // tabPageInputImage
             // 
             tabPageInputImage.Controls.Add(pnlInputImage);
-            tabPageInputImage.Location = new Point(4, 26);
+            tabPageInputImage.Location = new Point(4, 29);
+            tabPageInputImage.Margin = new Padding(4);
             tabPageInputImage.Name = "tabPageInputImage";
-            tabPageInputImage.Padding = new Padding(3);
-            tabPageInputImage.Size = new Size(632, 522);
+            tabPageInputImage.Padding = new Padding(4);
+            tabPageInputImage.Size = new Size(815, 619);
             tabPageInputImage.TabIndex = 0;
             tabPageInputImage.Text = "杈撳叆鍥惧儚";
             tabPageInputImage.UseVisualStyleBackColor = true;
@@ -1238,10 +1274,11 @@
             // tabPageRecordImage
             // 
             tabPageRecordImage.Controls.Add(pnlRecordImage);
-            tabPageRecordImage.Location = new Point(4, 26);
+            tabPageRecordImage.Location = new Point(4, 29);
+            tabPageRecordImage.Margin = new Padding(4);
             tabPageRecordImage.Name = "tabPageRecordImage";
-            tabPageRecordImage.Padding = new Padding(3);
-            tabPageRecordImage.Size = new Size(632, 522);
+            tabPageRecordImage.Padding = new Padding(4);
+            tabPageRecordImage.Size = new Size(815, 619);
             tabPageRecordImage.TabIndex = 1;
             tabPageRecordImage.Text = "缁撴灉鍥惧儚";
             tabPageRecordImage.UseVisualStyleBackColor = true;
@@ -1249,16 +1286,17 @@
             // pnlRecordImage
             // 
             pnlRecordImage.Dock = DockStyle.Fill;
-            pnlRecordImage.Location = new Point(3, 3);
-            pnlRecordImage.Margin = new Padding(4);
+            pnlRecordImage.Location = new Point(4, 4);
+            pnlRecordImage.Margin = new Padding(5);
             pnlRecordImage.Name = "pnlRecordImage";
-            pnlRecordImage.Size = new Size(626, 516);
+            pnlRecordImage.Size = new Size(807, 611);
             pnlRecordImage.TabIndex = 45;
             // 
             // splitContainer1
             // 
             splitContainer1.Dock = DockStyle.Fill;
-            splitContainer1.Location = new Point(0, 25);
+            splitContainer1.Location = new Point(0, 27);
+            splitContainer1.Margin = new Padding(4);
             splitContainer1.Name = "splitContainer1";
             // 
             // splitContainer1.Panel1
@@ -1268,20 +1306,21 @@
             // splitContainer1.Panel2
             // 
             splitContainer1.Panel2.Controls.Add(imgTabControl);
-            splitContainer1.Size = new Size(1044, 552);
-            splitContainer1.SplitterDistance = 400;
+            splitContainer1.Size = new Size(1342, 652);
+            splitContainer1.SplitterDistance = 514;
+            splitContainer1.SplitterWidth = 5;
             splitContainer1.TabIndex = 48;
             // 
             // HBlobToolEdit
             // 
-            AutoScaleDimensions = new SizeF(7F, 17F);
+            AutoScaleDimensions = new SizeF(9F, 20F);
             AutoScaleMode = AutoScaleMode.Font;
             Controls.Add(splitContainer1);
             Controls.Add(BtmStatusStrip);
             Controls.Add(TopToolStrip);
-            Margin = new Padding(2, 3, 2, 3);
+            Margin = new Padding(3, 4, 3, 4);
             Name = "HBlobToolEdit";
-            Size = new Size(1044, 599);
+            Size = new Size(1342, 705);
             Load += HBlobToolEdit_Load;
             tablePanelParas.ResumeLayout(false);
             tablePanelParas.PerformLayout();
diff --git a/LB_VisionProcesses/Alogrithms/Halcon/2D/HBlobTool/HBlobToolEdit.resx b/LB_VisionProcesses/Alogrithms/Halcon/2D/HBlobTool/HBlobToolEdit.resx
index 0960d33..3d728b5 100644
--- a/LB_VisionProcesses/Alogrithms/Halcon/2D/HBlobTool/HBlobToolEdit.resx
+++ b/LB_VisionProcesses/Alogrithms/Halcon/2D/HBlobTool/HBlobToolEdit.resx
@@ -121,9 +121,9 @@
     <value>17, 17</value>
   </metadata>
   <metadata name="TopToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>156, 17</value>
+    <value>183, 17</value>
   </metadata>
   <metadata name="BtmStatusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>287, 17</value>
+    <value>340, 17</value>
   </metadata>
 </root>
\ No newline at end of file
diff --git a/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.Designer.cs b/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.Designer.cs
index b39a675..9a0bab2 100644
--- a/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.Designer.cs
+++ b/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.Designer.cs
@@ -91,9 +91,9 @@
             // tablePanelParas
             // 
             tablePanelParas.ColumnCount = 4;
-            tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 90F));
+            tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 116F));
             tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
-            tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 90F));
+            tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 116F));
             tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
             tablePanelParas.Controls.Add(label1, 0, 0);
             tablePanelParas.Controls.Add(dtxtMinThreshold, 1, 0);
@@ -110,8 +110,8 @@
             tablePanelParas.Controls.Add(label10, 2, 3);
             tablePanelParas.Controls.Add(dtxtCodeLength, 3, 3);
             tablePanelParas.Dock = DockStyle.Fill;
-            tablePanelParas.Location = new Point(3, 3);
-            tablePanelParas.Margin = new Padding(2, 3, 2, 3);
+            tablePanelParas.Location = new Point(4, 4);
+            tablePanelParas.Margin = new Padding(3, 4, 3, 4);
             tablePanelParas.Name = "tablePanelParas";
             tablePanelParas.RowCount = 10;
             tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
@@ -124,71 +124,71 @@
             tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Percent, 10.000001F));
             tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Percent, 10.000001F));
             tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
-            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
-            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
-            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
-            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
-            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
-            tablePanelParas.Size = new Size(397, 510);
+            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 24F));
+            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 24F));
+            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 24F));
+            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 24F));
+            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 24F));
+            tablePanelParas.Size = new Size(512, 603);
             tablePanelParas.TabIndex = 0;
             // 
             // label1
             // 
             label1.AutoSize = true;
-            label1.Location = new Point(2, 0);
-            label1.Margin = new Padding(2, 0, 2, 0);
-            label1.MaximumSize = new Size(0, 28);
-            label1.MinimumSize = new Size(0, 28);
+            label1.Location = new Point(3, 0);
+            label1.MaximumSize = new Size(0, 33);
+            label1.MinimumSize = new Size(0, 33);
             label1.Name = "label1";
-            label1.Size = new Size(68, 28);
+            label1.Size = new Size(84, 33);
             label1.TabIndex = 0;
             label1.Text = "鏈�灏忕伆搴﹀��";
             label1.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtMinThreshold
             // 
-            dtxtMinThreshold.Location = new Point(92, 3);
-            dtxtMinThreshold.Margin = new Padding(2, 3, 2, 3);
+            dtxtMinThreshold.Location = new Point(119, 4);
+            dtxtMinThreshold.Margin = new Padding(3, 4, 3, 4);
             dtxtMinThreshold.Name = "dtxtMinThreshold";
-            dtxtMinThreshold.Size = new Size(98, 23);
+            dtxtMinThreshold.Size = new Size(125, 27);
             dtxtMinThreshold.TabIndex = 5;
             dtxtMinThreshold.Text = "80";
             // 
             // dtxtMaxThreshold
             // 
-            dtxtMaxThreshold.Location = new Point(290, 3);
-            dtxtMaxThreshold.Margin = new Padding(2, 3, 2, 3);
+            dtxtMaxThreshold.Location = new Point(375, 4);
+            dtxtMaxThreshold.Margin = new Padding(3, 4, 3, 4);
             dtxtMaxThreshold.Name = "dtxtMaxThreshold";
-            dtxtMaxThreshold.Size = new Size(98, 23);
+            dtxtMaxThreshold.Size = new Size(125, 27);
             dtxtMaxThreshold.TabIndex = 6;
             dtxtMaxThreshold.Text = "180";
             // 
             // label19
             // 
             label19.AutoSize = true;
-            label19.Location = new Point(3, 51);
+            label19.Location = new Point(4, 60);
+            label19.Margin = new Padding(4, 0, 4, 0);
             label19.Name = "label19";
-            label19.Size = new Size(56, 17);
+            label19.Size = new Size(69, 20);
             label19.TabIndex = 19;
             label19.Text = "鏈�灏忔暟閲�";
             // 
             // dtxtMinCount
             // 
-            dtxtMinCount.Location = new Point(93, 54);
+            dtxtMinCount.Location = new Point(120, 64);
+            dtxtMinCount.Margin = new Padding(4, 4, 4, 4);
             dtxtMinCount.Name = "dtxtMinCount";
-            dtxtMinCount.Size = new Size(97, 23);
+            dtxtMinCount.Size = new Size(124, 27);
             dtxtMinCount.TabIndex = 17;
             dtxtMinCount.Text = "0";
             // 
             // label2
             // 
             label2.AutoSize = true;
-            label2.Location = new Point(200, 0);
-            label2.Margin = new Padding(2, 0, 2, 0);
-            label2.MaximumSize = new Size(0, 28);
-            label2.MinimumSize = new Size(0, 28);
+            label2.Location = new Point(259, 0);
+            label2.MaximumSize = new Size(0, 33);
+            label2.MinimumSize = new Size(0, 33);
             label2.Name = "label2";
-            label2.Size = new Size(68, 28);
+            label2.Size = new Size(84, 33);
             label2.TabIndex = 1;
             label2.Text = "鏈�澶х伆搴﹀��";
             label2.TextAlign = ContentAlignment.MiddleCenter;
@@ -196,84 +196,93 @@
             // label20
             // 
             label20.AutoSize = true;
-            label20.Location = new Point(201, 51);
+            label20.Location = new Point(260, 60);
+            label20.Margin = new Padding(4, 0, 4, 0);
             label20.Name = "label20";
-            label20.Size = new Size(56, 17);
+            label20.Size = new Size(69, 20);
             label20.TabIndex = 20;
             label20.Text = "鏈�澶ф暟閲�";
             // 
             // dtxtMaxCount
             // 
-            dtxtMaxCount.Location = new Point(291, 54);
+            dtxtMaxCount.Location = new Point(376, 64);
+            dtxtMaxCount.Margin = new Padding(4, 4, 4, 4);
             dtxtMaxCount.Name = "dtxtMaxCount";
-            dtxtMaxCount.Size = new Size(97, 23);
+            dtxtMaxCount.Size = new Size(124, 27);
             dtxtMaxCount.TabIndex = 18;
             dtxtMaxCount.Text = "9999";
             // 
             // label3
             // 
             label3.AutoSize = true;
-            label3.Location = new Point(3, 153);
+            label3.Location = new Point(4, 180);
+            label3.Margin = new Padding(4, 0, 4, 0);
             label3.Name = "label3";
-            label3.Size = new Size(44, 17);
+            label3.Size = new Size(54, 20);
             label3.TabIndex = 21;
             label3.Text = "鏉$爜澶�";
             // 
             // stxtCodeHead
             // 
-            stxtCodeHead.Location = new Point(93, 156);
+            stxtCodeHead.Location = new Point(120, 184);
+            stxtCodeHead.Margin = new Padding(4, 4, 4, 4);
             stxtCodeHead.Name = "stxtCodeHead";
-            stxtCodeHead.Size = new Size(97, 23);
+            stxtCodeHead.Size = new Size(124, 27);
             stxtCodeHead.TabIndex = 22;
             // 
             // label4
             // 
             label4.AutoSize = true;
-            label4.Location = new Point(3, 102);
+            label4.Location = new Point(4, 120);
+            label4.Margin = new Padding(4, 0, 4, 0);
             label4.Name = "label4";
-            label4.Size = new Size(56, 17);
+            label4.Size = new Size(69, 20);
             label4.TabIndex = 23;
             label4.Text = "鏉$爜绫诲瀷";
             // 
             // cmbCode2dType
             // 
             cmbCode2dType.FormattingEnabled = true;
-            cmbCode2dType.Location = new Point(93, 105);
+            cmbCode2dType.Location = new Point(120, 124);
+            cmbCode2dType.Margin = new Padding(4, 4, 4, 4);
             cmbCode2dType.Name = "cmbCode2dType";
-            cmbCode2dType.Size = new Size(97, 25);
+            cmbCode2dType.Size = new Size(124, 28);
             cmbCode2dType.TabIndex = 24;
             // 
             // label10
             // 
             label10.AutoSize = true;
-            label10.Location = new Point(201, 153);
+            label10.Location = new Point(260, 180);
+            label10.Margin = new Padding(4, 0, 4, 0);
             label10.Name = "label10";
-            label10.Size = new Size(56, 17);
+            label10.Size = new Size(69, 20);
             label10.TabIndex = 25;
             label10.Text = "鏉$爜闀垮害";
             // 
             // dtxtCodeLength
             // 
-            dtxtCodeLength.Location = new Point(291, 156);
+            dtxtCodeLength.Location = new Point(376, 184);
+            dtxtCodeLength.Margin = new Padding(4, 4, 4, 4);
             dtxtCodeLength.Name = "dtxtCodeLength";
-            dtxtCodeLength.Size = new Size(97, 23);
+            dtxtCodeLength.Size = new Size(124, 27);
             dtxtCodeLength.TabIndex = 26;
             // 
             // pnlInputImage
             // 
             pnlInputImage.Dock = DockStyle.Fill;
-            pnlInputImage.Location = new Point(3, 3);
-            pnlInputImage.Margin = new Padding(4);
+            pnlInputImage.Location = new Point(4, 4);
+            pnlInputImage.Margin = new Padding(5, 5, 5, 5);
             pnlInputImage.Name = "pnlInputImage";
-            pnlInputImage.Size = new Size(607, 510);
+            pnlInputImage.Size = new Size(782, 603);
             pnlInputImage.TabIndex = 44;
             // 
             // TopToolStrip
             // 
+            TopToolStrip.ImageScalingSize = new Size(20, 20);
             TopToolStrip.Items.AddRange(new ToolStripItem[] { btnRun, btnLoadImage, btnSaveParas, btnLoadParas });
             TopToolStrip.Location = new Point(0, 0);
             TopToolStrip.Name = "TopToolStrip";
-            TopToolStrip.Size = new Size(1044, 25);
+            TopToolStrip.Size = new Size(1342, 27);
             TopToolStrip.TabIndex = 45;
             TopToolStrip.Text = "toolStrip1";
             // 
@@ -282,7 +291,7 @@
             btnRun.BackgroundImageLayout = ImageLayout.Zoom;
             btnRun.ImageTransparentColor = Color.Magenta;
             btnRun.Name = "btnRun";
-            btnRun.Size = new Size(36, 22);
+            btnRun.Size = new Size(43, 24);
             btnRun.Text = "杩愯";
             btnRun.Click += btnRun_Click;
             // 
@@ -290,7 +299,7 @@
             // 
             btnLoadImage.ImageTransparentColor = Color.Magenta;
             btnLoadImage.Name = "btnLoadImage";
-            btnLoadImage.Size = new Size(36, 22);
+            btnLoadImage.Size = new Size(43, 24);
             btnLoadImage.Text = "瀵煎浘";
             btnLoadImage.Click += btnLoadImage_Click;
             // 
@@ -298,7 +307,7 @@
             // 
             btnSaveParas.ImageTransparentColor = Color.Magenta;
             btnSaveParas.Name = "btnSaveParas";
-            btnSaveParas.Size = new Size(36, 22);
+            btnSaveParas.Size = new Size(43, 24);
             btnSaveParas.Text = "淇濆瓨";
             btnSaveParas.Click += btnSaveParas_Click;
             // 
@@ -306,35 +315,37 @@
             // 
             btnLoadParas.ImageTransparentColor = Color.Magenta;
             btnLoadParas.Name = "btnLoadParas";
-            btnLoadParas.Size = new Size(36, 22);
+            btnLoadParas.Size = new Size(43, 24);
             btnLoadParas.Text = "鍔犺浇";
             btnLoadParas.Click += btnLoadParas_Click;
             // 
             // BtmStatusStrip
             // 
+            BtmStatusStrip.ImageScalingSize = new Size(20, 20);
             BtmStatusStrip.Items.AddRange(new ToolStripItem[] { lblResult, lblMsg, lblRunTime });
-            BtmStatusStrip.Location = new Point(0, 577);
+            BtmStatusStrip.Location = new Point(0, 679);
             BtmStatusStrip.Name = "BtmStatusStrip";
-            BtmStatusStrip.Size = new Size(1044, 22);
+            BtmStatusStrip.Padding = new Padding(1, 0, 18, 0);
+            BtmStatusStrip.Size = new Size(1342, 26);
             BtmStatusStrip.TabIndex = 46;
             BtmStatusStrip.Text = "statusStrip1";
             // 
             // lblResult
             // 
             lblResult.Name = "lblResult";
-            lblResult.Size = new Size(34, 17);
+            lblResult.Size = new Size(42, 20);
             lblResult.Text = "True";
             // 
             // lblMsg
             // 
             lblMsg.Name = "lblMsg";
-            lblMsg.Size = new Size(56, 17);
+            lblMsg.Size = new Size(69, 20);
             lblMsg.Text = "杩愯鎴愬姛";
             // 
             // lblRunTime
             // 
             lblRunTime.Name = "lblRunTime";
-            lblRunTime.Size = new Size(32, 17);
+            lblRunTime.Size = new Size(39, 20);
             lblRunTime.Text = "0ms";
             // 
             // MainTableLayoutPanel
@@ -345,11 +356,12 @@
             MainTableLayoutPanel.Controls.Add(parasTabControl, 0, 0);
             MainTableLayoutPanel.Controls.Add(imgTabControl, 1, 0);
             MainTableLayoutPanel.Dock = DockStyle.Fill;
-            MainTableLayoutPanel.Location = new Point(0, 25);
+            MainTableLayoutPanel.Location = new Point(0, 27);
+            MainTableLayoutPanel.Margin = new Padding(4, 4, 4, 4);
             MainTableLayoutPanel.Name = "MainTableLayoutPanel";
             MainTableLayoutPanel.RowCount = 1;
             MainTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            MainTableLayoutPanel.Size = new Size(1044, 552);
+            MainTableLayoutPanel.Size = new Size(1342, 652);
             MainTableLayoutPanel.TabIndex = 47;
             // 
             // parasTabControl
@@ -358,19 +370,21 @@
             parasTabControl.Controls.Add(tabPage5);
             parasTabControl.Controls.Add(tabPage2);
             parasTabControl.Dock = DockStyle.Fill;
-            parasTabControl.Location = new Point(3, 3);
+            parasTabControl.Location = new Point(4, 4);
+            parasTabControl.Margin = new Padding(4, 4, 4, 4);
             parasTabControl.Name = "parasTabControl";
             parasTabControl.SelectedIndex = 0;
-            parasTabControl.Size = new Size(411, 546);
+            parasTabControl.Size = new Size(528, 644);
             parasTabControl.TabIndex = 48;
             // 
             // tabPage1
             // 
             tabPage1.Controls.Add(tablePanelParas);
-            tabPage1.Location = new Point(4, 26);
+            tabPage1.Location = new Point(4, 29);
+            tabPage1.Margin = new Padding(4, 4, 4, 4);
             tabPage1.Name = "tabPage1";
-            tabPage1.Padding = new Padding(3);
-            tabPage1.Size = new Size(403, 516);
+            tabPage1.Padding = new Padding(4, 4, 4, 4);
+            tabPage1.Size = new Size(520, 611);
             tabPage1.TabIndex = 0;
             tabPage1.Text = "杈撳叆鍙傛暟";
             tabPage1.UseVisualStyleBackColor = true;
@@ -378,9 +392,10 @@
             // tabPage5
             // 
             tabPage5.Controls.Add(tableLayoutPanel2);
-            tabPage5.Location = new Point(4, 26);
+            tabPage5.Location = new Point(4, 29);
+            tabPage5.Margin = new Padding(4, 4, 4, 4);
             tabPage5.Name = "tabPage5";
-            tabPage5.Size = new Size(403, 516);
+            tabPage5.Size = new Size(520, 611);
             tabPage5.TabIndex = 2;
             tabPage5.Text = "杩愯鍙傛暟";
             tabPage5.UseVisualStyleBackColor = true;
@@ -388,30 +403,32 @@
             // tableLayoutPanel2
             // 
             tableLayoutPanel2.ColumnCount = 4;
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 60F));
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 150F));
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 20F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 77F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 193F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 26F));
             tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
             tableLayoutPanel2.Controls.Add(cmbTypeRoi, 1, 0);
             tableLayoutPanel2.Controls.Add(label21, 0, 0);
             tableLayoutPanel2.Controls.Add(label22, 0, 1);
             tableLayoutPanel2.Controls.Add(cmbFixture, 1, 1);
             tableLayoutPanel2.Controls.Add(ckbDrawRoi, 2, 0);
-            tableLayoutPanel2.Location = new Point(3, 3);
+            tableLayoutPanel2.Location = new Point(4, 4);
+            tableLayoutPanel2.Margin = new Padding(4, 4, 4, 4);
             tableLayoutPanel2.Name = "tableLayoutPanel2";
             tableLayoutPanel2.RowCount = 3;
-            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
-            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
             tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            tableLayoutPanel2.Size = new Size(323, 196);
+            tableLayoutPanel2.Size = new Size(415, 231);
             tableLayoutPanel2.TabIndex = 5;
             // 
             // cmbTypeRoi
             // 
             cmbTypeRoi.FormattingEnabled = true;
-            cmbTypeRoi.Location = new Point(63, 3);
+            cmbTypeRoi.Location = new Point(81, 4);
+            cmbTypeRoi.Margin = new Padding(4, 4, 4, 4);
             cmbTypeRoi.Name = "cmbTypeRoi";
-            cmbTypeRoi.Size = new Size(121, 25);
+            cmbTypeRoi.Size = new Size(154, 28);
             cmbTypeRoi.TabIndex = 1;
             cmbTypeRoi.SelectedIndexChanged += cmbTypeRoi_SelectedIndexChanged;
             // 
@@ -419,9 +436,10 @@
             // 
             label21.AutoSize = true;
             label21.Dock = DockStyle.Fill;
-            label21.Location = new Point(3, 0);
+            label21.Location = new Point(4, 0);
+            label21.Margin = new Padding(4, 0, 4, 0);
             label21.Name = "label21";
-            label21.Size = new Size(54, 30);
+            label21.Size = new Size(69, 35);
             label21.TabIndex = 3;
             label21.Text = "ROI";
             label21.TextAlign = ContentAlignment.MiddleCenter;
@@ -430,9 +448,10 @@
             // 
             label22.AutoSize = true;
             label22.Dock = DockStyle.Fill;
-            label22.Location = new Point(3, 30);
+            label22.Location = new Point(4, 35);
+            label22.Margin = new Padding(4, 0, 4, 0);
             label22.Name = "label22";
-            label22.Size = new Size(54, 30);
+            label22.Size = new Size(69, 35);
             label22.TabIndex = 4;
             label22.Text = "Fixture";
             label22.TextAlign = ContentAlignment.MiddleCenter;
@@ -440,9 +459,10 @@
             // cmbFixture
             // 
             cmbFixture.FormattingEnabled = true;
-            cmbFixture.Location = new Point(63, 33);
+            cmbFixture.Location = new Point(81, 39);
+            cmbFixture.Margin = new Padding(4, 4, 4, 4);
             cmbFixture.Name = "cmbFixture";
-            cmbFixture.Size = new Size(121, 25);
+            cmbFixture.Size = new Size(154, 28);
             cmbFixture.TabIndex = 5;
             cmbFixture.SelectedIndexChanged += cmbFixture_SelectedIndexChanged;
             // 
@@ -450,9 +470,10 @@
             // 
             ckbDrawRoi.AutoSize = true;
             ckbDrawRoi.CheckAlign = ContentAlignment.MiddleCenter;
-            ckbDrawRoi.Location = new Point(213, 3);
+            ckbDrawRoi.Location = new Point(274, 4);
+            ckbDrawRoi.Margin = new Padding(4, 4, 4, 4);
             ckbDrawRoi.Name = "ckbDrawRoi";
-            ckbDrawRoi.Size = new Size(14, 14);
+            ckbDrawRoi.Size = new Size(18, 17);
             ckbDrawRoi.TabIndex = 2;
             ckbDrawRoi.UseVisualStyleBackColor = true;
             ckbDrawRoi.CheckedChanged += ckbDrawRoi_CheckedChanged;
@@ -460,10 +481,11 @@
             // tabPage2
             // 
             tabPage2.Controls.Add(tableLayoutResults);
-            tabPage2.Location = new Point(4, 26);
+            tabPage2.Location = new Point(4, 29);
+            tabPage2.Margin = new Padding(4, 4, 4, 4);
             tabPage2.Name = "tabPage2";
-            tabPage2.Padding = new Padding(3);
-            tabPage2.Size = new Size(403, 516);
+            tabPage2.Padding = new Padding(4, 4, 4, 4);
+            tabPage2.Size = new Size(520, 611);
             tabPage2.TabIndex = 1;
             tabPage2.Text = "杈撳嚭缁撴灉";
             tabPage2.UseVisualStyleBackColor = true;
@@ -471,15 +493,15 @@
             // tableLayoutResults
             // 
             tableLayoutResults.ColumnCount = 2;
-            tableLayoutResults.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 100F));
+            tableLayoutResults.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 129F));
             tableLayoutResults.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
             tableLayoutResults.Controls.Add(label5, 0, 0);
             tableLayoutResults.Controls.Add(stxtCodeStrings, 1, 0);
             tableLayoutResults.Controls.Add(label18, 0, 1);
             tableLayoutResults.Controls.Add(dtxtCount, 1, 1);
             tableLayoutResults.Dock = DockStyle.Fill;
-            tableLayoutResults.Location = new Point(3, 3);
-            tableLayoutResults.Margin = new Padding(2, 3, 2, 3);
+            tableLayoutResults.Location = new Point(4, 4);
+            tableLayoutResults.Margin = new Padding(3, 4, 3, 4);
             tableLayoutResults.Name = "tableLayoutResults";
             tableLayoutResults.RowCount = 10;
             tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
@@ -492,19 +514,18 @@
             tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
             tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
             tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
-            tableLayoutResults.Size = new Size(397, 510);
+            tableLayoutResults.Size = new Size(512, 603);
             tableLayoutResults.TabIndex = 1;
             // 
             // label5
             // 
             label5.AutoSize = true;
             label5.Dock = DockStyle.Fill;
-            label5.Location = new Point(2, 0);
-            label5.Margin = new Padding(2, 0, 2, 0);
-            label5.MaximumSize = new Size(0, 28);
-            label5.MinimumSize = new Size(0, 28);
+            label5.Location = new Point(3, 0);
+            label5.MaximumSize = new Size(0, 33);
+            label5.MinimumSize = new Size(0, 33);
             label5.Name = "label5";
-            label5.Size = new Size(96, 28);
+            label5.Size = new Size(123, 33);
             label5.TabIndex = 0;
             label5.Text = "缁撴灉";
             label5.TextAlign = ContentAlignment.TopCenter;
@@ -512,21 +533,22 @@
             // stxtCodeStrings
             // 
             stxtCodeStrings.Dock = DockStyle.Fill;
-            stxtCodeStrings.Location = new Point(102, 3);
-            stxtCodeStrings.Margin = new Padding(2, 3, 2, 3);
+            stxtCodeStrings.Location = new Point(132, 4);
+            stxtCodeStrings.Margin = new Padding(3, 4, 3, 4);
             stxtCodeStrings.Multiline = true;
             stxtCodeStrings.Name = "stxtCodeStrings";
             stxtCodeStrings.ReadOnly = true;
-            stxtCodeStrings.Size = new Size(293, 45);
+            stxtCodeStrings.Size = new Size(377, 52);
             stxtCodeStrings.TabIndex = 5;
             // 
             // label18
             // 
             label18.AutoSize = true;
             label18.Dock = DockStyle.Fill;
-            label18.Location = new Point(3, 51);
+            label18.Location = new Point(4, 60);
+            label18.Margin = new Padding(4, 0, 4, 0);
             label18.Name = "label18";
-            label18.Size = new Size(94, 51);
+            label18.Size = new Size(121, 60);
             label18.TabIndex = 10;
             label18.Text = "鏁伴噺";
             label18.TextAlign = ContentAlignment.TopCenter;
@@ -534,10 +556,11 @@
             // dtxtCount
             // 
             dtxtCount.Dock = DockStyle.Fill;
-            dtxtCount.Location = new Point(103, 54);
+            dtxtCount.Location = new Point(133, 64);
+            dtxtCount.Margin = new Padding(4, 4, 4, 4);
             dtxtCount.Name = "dtxtCount";
             dtxtCount.ReadOnly = true;
-            dtxtCount.Size = new Size(291, 23);
+            dtxtCount.Size = new Size(375, 27);
             dtxtCount.TabIndex = 11;
             // 
             // imgTabControl
@@ -545,19 +568,21 @@
             imgTabControl.Controls.Add(tabPageInputImage);
             imgTabControl.Controls.Add(tabPageRecordImage);
             imgTabControl.Dock = DockStyle.Fill;
-            imgTabControl.Location = new Point(420, 3);
+            imgTabControl.Location = new Point(540, 4);
+            imgTabControl.Margin = new Padding(4, 4, 4, 4);
             imgTabControl.Name = "imgTabControl";
             imgTabControl.SelectedIndex = 0;
-            imgTabControl.Size = new Size(621, 546);
+            imgTabControl.Size = new Size(798, 644);
             imgTabControl.TabIndex = 49;
             // 
             // tabPageInputImage
             // 
             tabPageInputImage.Controls.Add(pnlInputImage);
-            tabPageInputImage.Location = new Point(4, 26);
+            tabPageInputImage.Location = new Point(4, 29);
+            tabPageInputImage.Margin = new Padding(4, 4, 4, 4);
             tabPageInputImage.Name = "tabPageInputImage";
-            tabPageInputImage.Padding = new Padding(3);
-            tabPageInputImage.Size = new Size(613, 516);
+            tabPageInputImage.Padding = new Padding(4, 4, 4, 4);
+            tabPageInputImage.Size = new Size(790, 611);
             tabPageInputImage.TabIndex = 0;
             tabPageInputImage.Text = "杈撳叆鍥惧儚";
             tabPageInputImage.UseVisualStyleBackColor = true;
@@ -565,10 +590,11 @@
             // tabPageRecordImage
             // 
             tabPageRecordImage.Controls.Add(pnlRecordImage);
-            tabPageRecordImage.Location = new Point(4, 26);
+            tabPageRecordImage.Location = new Point(4, 29);
+            tabPageRecordImage.Margin = new Padding(4, 4, 4, 4);
             tabPageRecordImage.Name = "tabPageRecordImage";
-            tabPageRecordImage.Padding = new Padding(3);
-            tabPageRecordImage.Size = new Size(613, 516);
+            tabPageRecordImage.Padding = new Padding(4, 4, 4, 4);
+            tabPageRecordImage.Size = new Size(790, 611);
             tabPageRecordImage.TabIndex = 1;
             tabPageRecordImage.Text = "缁撴灉鍥惧儚";
             tabPageRecordImage.UseVisualStyleBackColor = true;
@@ -576,22 +602,22 @@
             // pnlRecordImage
             // 
             pnlRecordImage.Dock = DockStyle.Fill;
-            pnlRecordImage.Location = new Point(3, 3);
-            pnlRecordImage.Margin = new Padding(4);
+            pnlRecordImage.Location = new Point(4, 4);
+            pnlRecordImage.Margin = new Padding(5, 5, 5, 5);
             pnlRecordImage.Name = "pnlRecordImage";
-            pnlRecordImage.Size = new Size(607, 510);
+            pnlRecordImage.Size = new Size(782, 603);
             pnlRecordImage.TabIndex = 45;
             // 
             // HFindCode2dToolEdit
             // 
-            AutoScaleDimensions = new SizeF(7F, 17F);
+            AutoScaleDimensions = new SizeF(9F, 20F);
             AutoScaleMode = AutoScaleMode.Font;
             Controls.Add(MainTableLayoutPanel);
             Controls.Add(BtmStatusStrip);
             Controls.Add(TopToolStrip);
-            Margin = new Padding(2, 3, 2, 3);
+            Margin = new Padding(3, 4, 3, 4);
             Name = "HFindCode2dToolEdit";
-            Size = new Size(1044, 599);
+            Size = new Size(1342, 705);
             Load += HFindCode2dToolEdit_Load;
             tablePanelParas.ResumeLayout(false);
             tablePanelParas.PerformLayout();
diff --git a/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.resx b/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.resx
index 7600563..3d728b5 100644
--- a/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.resx
+++ b/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -117,10 +117,13 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <metadata name="TopToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="lblMsgToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
+  <metadata name="TopToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>183, 17</value>
+  </metadata>
   <metadata name="BtmStatusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>148, 17</value>
+    <value>340, 17</value>
   </metadata>
 </root>
\ No newline at end of file
diff --git a/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.Designer.cs b/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.Designer.cs
index 7190e9e..5c7def3 100644
--- a/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.Designer.cs
+++ b/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.Designer.cs
@@ -47,6 +47,7 @@
             label13 = new Label();
             cmbTransition = new ComboBox();
             cmbSelect = new ComboBox();
+            btnShowROI = new Button();
             pnlInputImage = new Panel();
             TopToolStrip = new ToolStrip();
             btnRun = new ToolStripButton();
@@ -85,7 +86,6 @@
             tabPageInputImage = new TabPage();
             tabPageRecordImage = new TabPage();
             pnlRecordImage = new Panel();
-            btnShowROI = new Button();
             tablePanelParas.SuspendLayout();
             TopToolStrip.SuspendLayout();
             BtmStatusStrip.SuspendLayout();
@@ -104,9 +104,9 @@
             // tablePanelParas
             // 
             tablePanelParas.ColumnCount = 4;
-            tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 90F));
+            tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 116F));
             tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
-            tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 90F));
+            tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 116F));
             tablePanelParas.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
             tablePanelParas.Controls.Add(label1, 0, 0);
             tablePanelParas.Controls.Add(itxtCaliperCount, 1, 0);
@@ -126,8 +126,8 @@
             tablePanelParas.Controls.Add(cmbSelect, 3, 3);
             tablePanelParas.Controls.Add(btnShowROI, 0, 4);
             tablePanelParas.Dock = DockStyle.Fill;
-            tablePanelParas.Location = new Point(3, 3);
-            tablePanelParas.Margin = new Padding(2, 3, 2, 3);
+            tablePanelParas.Location = new Point(4, 4);
+            tablePanelParas.Margin = new Padding(3, 4, 3, 4);
             tablePanelParas.Name = "tablePanelParas";
             tablePanelParas.RowCount = 10;
             tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
@@ -140,155 +140,148 @@
             tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Percent, 10.000001F));
             tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Percent, 10.000001F));
             tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
-            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
-            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
-            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
-            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
-            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
-            tablePanelParas.Size = new Size(397, 510);
+            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 24F));
+            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 24F));
+            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 24F));
+            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 24F));
+            tablePanelParas.RowStyles.Add(new RowStyle(SizeType.Absolute, 24F));
+            tablePanelParas.Size = new Size(512, 603);
             tablePanelParas.TabIndex = 0;
             // 
             // label1
             // 
             label1.AutoSize = true;
-            label1.Location = new Point(2, 0);
-            label1.Margin = new Padding(2, 0, 2, 0);
-            label1.MaximumSize = new Size(0, 28);
-            label1.MinimumSize = new Size(0, 28);
+            label1.Location = new Point(3, 0);
+            label1.MaximumSize = new Size(0, 33);
+            label1.MinimumSize = new Size(0, 33);
             label1.Name = "label1";
-            label1.Size = new Size(56, 28);
+            label1.Size = new Size(69, 33);
             label1.TabIndex = 0;
             label1.Text = "鍗″昂鏁伴噺";
             label1.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // itxtCaliperCount
             // 
-            itxtCaliperCount.Location = new Point(92, 3);
-            itxtCaliperCount.Margin = new Padding(2, 3, 2, 3);
+            itxtCaliperCount.Location = new Point(119, 4);
+            itxtCaliperCount.Margin = new Padding(3, 4, 3, 4);
             itxtCaliperCount.Name = "itxtCaliperCount";
-            itxtCaliperCount.Size = new Size(98, 23);
+            itxtCaliperCount.Size = new Size(125, 27);
             itxtCaliperCount.TabIndex = 5;
             itxtCaliperCount.Text = "6";
             // 
             // label2
             // 
             label2.AutoSize = true;
-            label2.Location = new Point(200, 0);
-            label2.Margin = new Padding(2, 0, 2, 0);
-            label2.MaximumSize = new Size(0, 28);
-            label2.MinimumSize = new Size(0, 28);
+            label2.Location = new Point(259, 0);
+            label2.MaximumSize = new Size(0, 33);
+            label2.MinimumSize = new Size(0, 33);
             label2.Name = "label2";
-            label2.Size = new Size(56, 28);
+            label2.Size = new Size(69, 33);
             label2.TabIndex = 1;
             label2.Text = "鍗″昂闀垮害";
             label2.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtCaliperHeight
             // 
-            dtxtCaliperHeight.Location = new Point(290, 3);
-            dtxtCaliperHeight.Margin = new Padding(2, 3, 2, 3);
+            dtxtCaliperHeight.Location = new Point(375, 4);
+            dtxtCaliperHeight.Margin = new Padding(3, 4, 3, 4);
             dtxtCaliperHeight.Name = "dtxtCaliperHeight";
-            dtxtCaliperHeight.Size = new Size(98, 23);
+            dtxtCaliperHeight.Size = new Size(125, 27);
             dtxtCaliperHeight.TabIndex = 6;
             dtxtCaliperHeight.Text = "30";
             // 
             // label3
             // 
             label3.AutoSize = true;
-            label3.Location = new Point(2, 51);
-            label3.Margin = new Padding(2, 0, 2, 0);
-            label3.MaximumSize = new Size(0, 28);
-            label3.MinimumSize = new Size(0, 28);
+            label3.Location = new Point(3, 60);
+            label3.MaximumSize = new Size(0, 33);
+            label3.MinimumSize = new Size(0, 33);
             label3.Name = "label3";
-            label3.Size = new Size(56, 28);
+            label3.Size = new Size(69, 33);
             label3.TabIndex = 2;
             label3.Text = "鍗″昂瀹藉害";
             label3.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // dtxtCaliperWidth
             // 
-            dtxtCaliperWidth.Location = new Point(92, 54);
-            dtxtCaliperWidth.Margin = new Padding(2, 3, 2, 3);
+            dtxtCaliperWidth.Location = new Point(119, 64);
+            dtxtCaliperWidth.Margin = new Padding(3, 4, 3, 4);
             dtxtCaliperWidth.Name = "dtxtCaliperWidth";
-            dtxtCaliperWidth.Size = new Size(98, 23);
+            dtxtCaliperWidth.Size = new Size(125, 27);
             dtxtCaliperWidth.TabIndex = 7;
             dtxtCaliperWidth.Text = "10";
             // 
             // label4
             // 
             label4.AutoSize = true;
-            label4.Location = new Point(200, 51);
-            label4.Margin = new Padding(2, 0, 2, 0);
-            label4.MaximumSize = new Size(0, 28);
-            label4.MinimumSize = new Size(0, 28);
+            label4.Location = new Point(259, 60);
+            label4.MaximumSize = new Size(0, 33);
+            label4.MinimumSize = new Size(0, 33);
             label4.Name = "label4";
-            label4.Size = new Size(80, 28);
+            label4.Size = new Size(99, 33);
             label4.TabIndex = 3;
             label4.Text = "杩囨护涓�鍗婂儚绱�";
             label4.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // itxtSigma
             // 
-            itxtSigma.Location = new Point(290, 54);
-            itxtSigma.Margin = new Padding(2, 3, 2, 3);
+            itxtSigma.Location = new Point(375, 64);
+            itxtSigma.Margin = new Padding(3, 4, 3, 4);
             itxtSigma.Name = "itxtSigma";
-            itxtSigma.Size = new Size(98, 23);
+            itxtSigma.Size = new Size(125, 27);
             itxtSigma.TabIndex = 8;
             itxtSigma.Text = "0";
             // 
             // label10
             // 
             label10.AutoSize = true;
-            label10.Location = new Point(2, 102);
-            label10.Margin = new Padding(2, 0, 2, 0);
-            label10.MaximumSize = new Size(0, 28);
-            label10.MinimumSize = new Size(0, 28);
+            label10.Location = new Point(3, 120);
+            label10.MaximumSize = new Size(0, 33);
+            label10.MinimumSize = new Size(0, 33);
             label10.Name = "label10";
-            label10.Size = new Size(68, 28);
+            label10.Size = new Size(84, 33);
             label10.TabIndex = 9;
             label10.Text = "瀵规瘮搴﹂槇鍊�";
             label10.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // itxtThreshold
             // 
-            itxtThreshold.Location = new Point(92, 105);
-            itxtThreshold.Margin = new Padding(2, 3, 2, 3);
+            itxtThreshold.Location = new Point(119, 124);
+            itxtThreshold.Margin = new Padding(3, 4, 3, 4);
             itxtThreshold.Name = "itxtThreshold";
-            itxtThreshold.Size = new Size(98, 23);
+            itxtThreshold.Size = new Size(125, 27);
             itxtThreshold.TabIndex = 9;
             itxtThreshold.Text = "0";
             // 
             // label11
             // 
             label11.AutoSize = true;
-            label11.Location = new Point(200, 102);
-            label11.Margin = new Padding(2, 0, 2, 0);
-            label11.MaximumSize = new Size(0, 28);
-            label11.MinimumSize = new Size(0, 28);
+            label11.Location = new Point(259, 120);
+            label11.MaximumSize = new Size(0, 33);
+            label11.MinimumSize = new Size(0, 33);
             label11.Name = "label11";
-            label11.Size = new Size(56, 28);
+            label11.Size = new Size(69, 33);
             label11.TabIndex = 10;
             label11.Text = "蹇界暐鐐规暟";
             label11.TextAlign = ContentAlignment.MiddleCenter;
             // 
             // itxtIgnoreCount
             // 
-            itxtIgnoreCount.Location = new Point(290, 105);
-            itxtIgnoreCount.Margin = new Padding(2, 3, 2, 3);
+            itxtIgnoreCount.Location = new Point(375, 124);
+            itxtIgnoreCount.Margin = new Padding(3, 4, 3, 4);
             itxtIgnoreCount.Name = "itxtIgnoreCount";
-            itxtIgnoreCount.Size = new Size(98, 23);
+            itxtIgnoreCount.Size = new Size(125, 27);
             itxtIgnoreCount.TabIndex = 9;
             itxtIgnoreCount.Text = "0";
             // 
             // label12
             // 
             label12.AutoSize = true;
-            label12.Location = new Point(2, 153);
-            label12.Margin = new Padding(2, 0, 2, 0);
-            label12.MaximumSize = new Size(0, 28);
-            label12.MinimumSize = new Size(0, 28);
+            label12.Location = new Point(3, 180);
+            label12.MaximumSize = new Size(0, 33);
+            label12.MinimumSize = new Size(0, 33);
             label12.Name = "label12";
-            label12.Size = new Size(32, 28);
+            label12.Size = new Size(39, 33);
             label12.TabIndex = 11;
             label12.Text = "鏋佹��";
             label12.TextAlign = ContentAlignment.MiddleCenter;
@@ -296,12 +289,11 @@
             // label13
             // 
             label13.AutoSize = true;
-            label13.Location = new Point(200, 153);
-            label13.Margin = new Padding(2, 0, 2, 0);
-            label13.MaximumSize = new Size(0, 28);
-            label13.MinimumSize = new Size(0, 28);
+            label13.Location = new Point(259, 180);
+            label13.MaximumSize = new Size(0, 33);
+            label13.MinimumSize = new Size(0, 33);
             label13.Name = "label13";
-            label13.Size = new Size(56, 28);
+            label13.Size = new Size(69, 33);
             label13.TabIndex = 12;
             label13.Text = "杈圭紭浣嶇疆";
             label13.TextAlign = ContentAlignment.MiddleCenter;
@@ -309,34 +301,49 @@
             // cmbTransition
             // 
             cmbTransition.FormattingEnabled = true;
-            cmbTransition.Location = new Point(93, 156);
+            cmbTransition.Location = new Point(120, 184);
+            cmbTransition.Margin = new Padding(4, 4, 4, 4);
             cmbTransition.Name = "cmbTransition";
-            cmbTransition.Size = new Size(102, 25);
+            cmbTransition.Size = new Size(130, 28);
             cmbTransition.TabIndex = 13;
             // 
             // cmbSelect
             // 
             cmbSelect.FormattingEnabled = true;
-            cmbSelect.Location = new Point(291, 156);
+            cmbSelect.Location = new Point(376, 184);
+            cmbSelect.Margin = new Padding(4, 4, 4, 4);
             cmbSelect.Name = "cmbSelect";
-            cmbSelect.Size = new Size(103, 25);
+            cmbSelect.Size = new Size(131, 28);
             cmbSelect.TabIndex = 14;
+            // 
+            // btnShowROI
+            // 
+            btnShowROI.Dock = DockStyle.Fill;
+            btnShowROI.Location = new Point(4, 244);
+            btnShowROI.Margin = new Padding(4, 4, 4, 4);
+            btnShowROI.Name = "btnShowROI";
+            btnShowROI.Size = new Size(108, 52);
+            btnShowROI.TabIndex = 15;
+            btnShowROI.Text = "鏄剧ず鎵剧嚎鍖哄煙";
+            btnShowROI.UseVisualStyleBackColor = true;
+            btnShowROI.Click += btnShowROI_Click;
             // 
             // pnlInputImage
             // 
             pnlInputImage.Dock = DockStyle.Fill;
-            pnlInputImage.Location = new Point(3, 3);
-            pnlInputImage.Margin = new Padding(4);
+            pnlInputImage.Location = new Point(4, 4);
+            pnlInputImage.Margin = new Padding(5, 5, 5, 5);
             pnlInputImage.Name = "pnlInputImage";
-            pnlInputImage.Size = new Size(607, 510);
+            pnlInputImage.Size = new Size(782, 603);
             pnlInputImage.TabIndex = 44;
             // 
             // TopToolStrip
             // 
+            TopToolStrip.ImageScalingSize = new Size(20, 20);
             TopToolStrip.Items.AddRange(new ToolStripItem[] { btnRun, btnLoadImage, btnSaveParas, btnLoadParas });
             TopToolStrip.Location = new Point(0, 0);
             TopToolStrip.Name = "TopToolStrip";
-            TopToolStrip.Size = new Size(1044, 25);
+            TopToolStrip.Size = new Size(1342, 27);
             TopToolStrip.TabIndex = 45;
             TopToolStrip.Text = "toolStrip1";
             // 
@@ -345,7 +352,7 @@
             btnRun.BackgroundImageLayout = ImageLayout.Zoom;
             btnRun.ImageTransparentColor = Color.Magenta;
             btnRun.Name = "btnRun";
-            btnRun.Size = new Size(36, 22);
+            btnRun.Size = new Size(43, 24);
             btnRun.Text = "杩愯";
             btnRun.Click += btnRun_Click;
             // 
@@ -353,7 +360,7 @@
             // 
             btnLoadImage.ImageTransparentColor = Color.Magenta;
             btnLoadImage.Name = "btnLoadImage";
-            btnLoadImage.Size = new Size(36, 22);
+            btnLoadImage.Size = new Size(43, 24);
             btnLoadImage.Text = "瀵煎浘";
             btnLoadImage.Click += btnLoadImage_Click;
             // 
@@ -361,7 +368,7 @@
             // 
             btnSaveParas.ImageTransparentColor = Color.Magenta;
             btnSaveParas.Name = "btnSaveParas";
-            btnSaveParas.Size = new Size(36, 22);
+            btnSaveParas.Size = new Size(43, 24);
             btnSaveParas.Text = "淇濆瓨";
             btnSaveParas.Click += btnSaveParas_Click;
             // 
@@ -369,35 +376,37 @@
             // 
             btnLoadParas.ImageTransparentColor = Color.Magenta;
             btnLoadParas.Name = "btnLoadParas";
-            btnLoadParas.Size = new Size(36, 22);
+            btnLoadParas.Size = new Size(43, 24);
             btnLoadParas.Text = "鍔犺浇";
             btnLoadParas.Click += btnLoadParas_Click;
             // 
             // BtmStatusStrip
             // 
+            BtmStatusStrip.ImageScalingSize = new Size(20, 20);
             BtmStatusStrip.Items.AddRange(new ToolStripItem[] { lblResult, lblMsg, lblRunTime });
-            BtmStatusStrip.Location = new Point(0, 577);
+            BtmStatusStrip.Location = new Point(0, 679);
             BtmStatusStrip.Name = "BtmStatusStrip";
-            BtmStatusStrip.Size = new Size(1044, 22);
+            BtmStatusStrip.Padding = new Padding(1, 0, 18, 0);
+            BtmStatusStrip.Size = new Size(1342, 26);
             BtmStatusStrip.TabIndex = 46;
             BtmStatusStrip.Text = "statusStrip1";
             // 
             // lblResult
             // 
             lblResult.Name = "lblResult";
-            lblResult.Size = new Size(34, 17);
+            lblResult.Size = new Size(42, 20);
             lblResult.Text = "True";
             // 
             // lblMsg
             // 
             lblMsg.Name = "lblMsg";
-            lblMsg.Size = new Size(56, 17);
+            lblMsg.Size = new Size(69, 20);
             lblMsg.Text = "杩愯鎴愬姛";
             // 
             // lblRunTime
             // 
             lblRunTime.Name = "lblRunTime";
-            lblRunTime.Size = new Size(32, 17);
+            lblRunTime.Size = new Size(39, 20);
             lblRunTime.Text = "0ms";
             // 
             // MainTableLayoutPanel
@@ -408,11 +417,12 @@
             MainTableLayoutPanel.Controls.Add(parasTabControl, 0, 0);
             MainTableLayoutPanel.Controls.Add(imgTabControl, 1, 0);
             MainTableLayoutPanel.Dock = DockStyle.Fill;
-            MainTableLayoutPanel.Location = new Point(0, 25);
+            MainTableLayoutPanel.Location = new Point(0, 27);
+            MainTableLayoutPanel.Margin = new Padding(4, 4, 4, 4);
             MainTableLayoutPanel.Name = "MainTableLayoutPanel";
             MainTableLayoutPanel.RowCount = 1;
             MainTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            MainTableLayoutPanel.Size = new Size(1044, 552);
+            MainTableLayoutPanel.Size = new Size(1342, 652);
             MainTableLayoutPanel.TabIndex = 47;
             // 
             // parasTabControl
@@ -421,19 +431,21 @@
             parasTabControl.Controls.Add(tabPage5);
             parasTabControl.Controls.Add(tabPage2);
             parasTabControl.Dock = DockStyle.Fill;
-            parasTabControl.Location = new Point(3, 3);
+            parasTabControl.Location = new Point(4, 4);
+            parasTabControl.Margin = new Padding(4, 4, 4, 4);
             parasTabControl.Name = "parasTabControl";
             parasTabControl.SelectedIndex = 0;
-            parasTabControl.Size = new Size(411, 546);
+            parasTabControl.Size = new Size(528, 644);
             parasTabControl.TabIndex = 48;
             // 
             // tabPage1
             // 
             tabPage1.Controls.Add(tablePanelParas);
-            tabPage1.Location = new Point(4, 26);
+            tabPage1.Location = new Point(4, 29);
+            tabPage1.Margin = new Padding(4, 4, 4, 4);
             tabPage1.Name = "tabPage1";
-            tabPage1.Padding = new Padding(3);
-            tabPage1.Size = new Size(403, 516);
+            tabPage1.Padding = new Padding(4, 4, 4, 4);
+            tabPage1.Size = new Size(520, 611);
             tabPage1.TabIndex = 0;
             tabPage1.Text = "杈撳叆鍙傛暟";
             tabPage1.UseVisualStyleBackColor = true;
@@ -441,9 +453,10 @@
             // tabPage5
             // 
             tabPage5.Controls.Add(tableLayoutPanel2);
-            tabPage5.Location = new Point(4, 26);
+            tabPage5.Location = new Point(4, 29);
+            tabPage5.Margin = new Padding(4, 4, 4, 4);
             tabPage5.Name = "tabPage5";
-            tabPage5.Size = new Size(403, 516);
+            tabPage5.Size = new Size(520, 611);
             tabPage5.TabIndex = 2;
             tabPage5.Text = "杩愯鍙傛暟";
             tabPage5.UseVisualStyleBackColor = true;
@@ -451,36 +464,38 @@
             // tableLayoutPanel2
             // 
             tableLayoutPanel2.ColumnCount = 4;
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 60F));
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 150F));
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 20F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 77F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 193F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 26F));
             tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
             tableLayoutPanel2.Controls.Add(cmbTypeRoi, 1, 0);
             tableLayoutPanel2.Controls.Add(label21, 0, 0);
             tableLayoutPanel2.Controls.Add(label22, 0, 1);
             tableLayoutPanel2.Controls.Add(cmbFixture, 1, 1);
             tableLayoutPanel2.Controls.Add(ckbDrawRoi, 2, 0);
-            tableLayoutPanel2.Location = new Point(3, 3);
+            tableLayoutPanel2.Location = new Point(4, 4);
+            tableLayoutPanel2.Margin = new Padding(4, 4, 4, 4);
             tableLayoutPanel2.Name = "tableLayoutPanel2";
             tableLayoutPanel2.RowCount = 8;
-            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
-            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
-            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
-            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
-            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
-            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
-            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
             tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            tableLayoutPanel2.Size = new Size(323, 309);
+            tableLayoutPanel2.Size = new Size(415, 364);
             tableLayoutPanel2.TabIndex = 4;
             // 
             // cmbTypeRoi
             // 
             cmbTypeRoi.Enabled = false;
             cmbTypeRoi.FormattingEnabled = true;
-            cmbTypeRoi.Location = new Point(63, 3);
+            cmbTypeRoi.Location = new Point(81, 4);
+            cmbTypeRoi.Margin = new Padding(4, 4, 4, 4);
             cmbTypeRoi.Name = "cmbTypeRoi";
-            cmbTypeRoi.Size = new Size(121, 25);
+            cmbTypeRoi.Size = new Size(154, 28);
             cmbTypeRoi.TabIndex = 1;
             cmbTypeRoi.SelectedIndexChanged += cmbTypeRoi_SelectedIndexChanged;
             // 
@@ -488,9 +503,10 @@
             // 
             label21.AutoSize = true;
             label21.Dock = DockStyle.Fill;
-            label21.Location = new Point(3, 0);
+            label21.Location = new Point(4, 0);
+            label21.Margin = new Padding(4, 0, 4, 0);
             label21.Name = "label21";
-            label21.Size = new Size(54, 30);
+            label21.Size = new Size(69, 35);
             label21.TabIndex = 3;
             label21.Text = "ROI";
             label21.TextAlign = ContentAlignment.MiddleCenter;
@@ -499,9 +515,10 @@
             // 
             label22.AutoSize = true;
             label22.Dock = DockStyle.Fill;
-            label22.Location = new Point(3, 30);
+            label22.Location = new Point(4, 35);
+            label22.Margin = new Padding(4, 0, 4, 0);
             label22.Name = "label22";
-            label22.Size = new Size(54, 30);
+            label22.Size = new Size(69, 35);
             label22.TabIndex = 4;
             label22.Text = "Fixture";
             label22.TextAlign = ContentAlignment.MiddleCenter;
@@ -509,9 +526,10 @@
             // cmbFixture
             // 
             cmbFixture.FormattingEnabled = true;
-            cmbFixture.Location = new Point(63, 33);
+            cmbFixture.Location = new Point(81, 39);
+            cmbFixture.Margin = new Padding(4, 4, 4, 4);
             cmbFixture.Name = "cmbFixture";
-            cmbFixture.Size = new Size(121, 25);
+            cmbFixture.Size = new Size(154, 28);
             cmbFixture.TabIndex = 5;
             cmbFixture.SelectedIndexChanged += cmbFixture_SelectedIndexChanged;
             // 
@@ -519,9 +537,10 @@
             // 
             ckbDrawRoi.AutoSize = true;
             ckbDrawRoi.CheckAlign = ContentAlignment.MiddleCenter;
-            ckbDrawRoi.Location = new Point(213, 3);
+            ckbDrawRoi.Location = new Point(274, 4);
+            ckbDrawRoi.Margin = new Padding(4, 4, 4, 4);
             ckbDrawRoi.Name = "ckbDrawRoi";
-            ckbDrawRoi.Size = new Size(14, 14);
+            ckbDrawRoi.Size = new Size(18, 17);
             ckbDrawRoi.TabIndex = 2;
             ckbDrawRoi.UseVisualStyleBackColor = true;
             ckbDrawRoi.CheckedChanged += ckbDrawRoi_CheckedChanged;
@@ -529,10 +548,11 @@
             // tabPage2
             // 
             tabPage2.Controls.Add(tableLayoutResults);
-            tabPage2.Location = new Point(4, 26);
+            tabPage2.Location = new Point(4, 29);
+            tabPage2.Margin = new Padding(4, 4, 4, 4);
             tabPage2.Name = "tabPage2";
-            tabPage2.Padding = new Padding(3);
-            tabPage2.Size = new Size(403, 516);
+            tabPage2.Padding = new Padding(4, 4, 4, 4);
+            tabPage2.Size = new Size(520, 611);
             tabPage2.TabIndex = 1;
             tabPage2.Text = "杈撳嚭缁撴灉";
             tabPage2.UseVisualStyleBackColor = true;
@@ -540,7 +560,7 @@
             // tableLayoutResults
             // 
             tableLayoutResults.ColumnCount = 2;
-            tableLayoutResults.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 100F));
+            tableLayoutResults.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 129F));
             tableLayoutResults.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
             tableLayoutResults.Controls.Add(dtxtHeight, 1, 4);
             tableLayoutResults.Controls.Add(label9, 0, 4);
@@ -555,8 +575,8 @@
             tableLayoutResults.Controls.Add(label18, 0, 5);
             tableLayoutResults.Controls.Add(dtxtCount, 1, 5);
             tableLayoutResults.Dock = DockStyle.Fill;
-            tableLayoutResults.Location = new Point(3, 3);
-            tableLayoutResults.Margin = new Padding(2, 3, 2, 3);
+            tableLayoutResults.Location = new Point(4, 4);
+            tableLayoutResults.Margin = new Padding(3, 4, 3, 4);
             tableLayoutResults.Name = "tableLayoutResults";
             tableLayoutResults.RowCount = 10;
             tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
@@ -569,29 +589,28 @@
             tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
             tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
             tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
-            tableLayoutResults.Size = new Size(397, 510);
+            tableLayoutResults.Size = new Size(512, 603);
             tableLayoutResults.TabIndex = 1;
             // 
             // dtxtHeight
             // 
             dtxtHeight.Dock = DockStyle.Fill;
-            dtxtHeight.Location = new Point(102, 207);
-            dtxtHeight.Margin = new Padding(2, 3, 2, 3);
+            dtxtHeight.Location = new Point(132, 244);
+            dtxtHeight.Margin = new Padding(3, 4, 3, 4);
             dtxtHeight.Name = "dtxtHeight";
             dtxtHeight.ReadOnly = true;
-            dtxtHeight.Size = new Size(293, 23);
+            dtxtHeight.Size = new Size(377, 27);
             dtxtHeight.TabIndex = 9;
             // 
             // label9
             // 
             label9.AutoSize = true;
             label9.Dock = DockStyle.Fill;
-            label9.Location = new Point(2, 204);
-            label9.Margin = new Padding(2, 0, 2, 0);
-            label9.MaximumSize = new Size(0, 28);
-            label9.MinimumSize = new Size(0, 28);
+            label9.Location = new Point(3, 240);
+            label9.MaximumSize = new Size(0, 33);
+            label9.MinimumSize = new Size(0, 33);
             label9.Name = "label9";
-            label9.Size = new Size(96, 28);
+            label9.Size = new Size(123, 33);
             label9.TabIndex = 3;
             label9.Text = "楂樺害";
             label9.TextAlign = ContentAlignment.TopCenter;
@@ -600,12 +619,11 @@
             // 
             label5.AutoSize = true;
             label5.Dock = DockStyle.Fill;
-            label5.Location = new Point(2, 0);
-            label5.Margin = new Padding(2, 0, 2, 0);
-            label5.MaximumSize = new Size(0, 28);
-            label5.MinimumSize = new Size(0, 28);
+            label5.Location = new Point(3, 0);
+            label5.MaximumSize = new Size(0, 33);
+            label5.MinimumSize = new Size(0, 33);
             label5.Name = "label5";
-            label5.Size = new Size(96, 28);
+            label5.Size = new Size(123, 33);
             label5.TabIndex = 0;
             label5.Text = "X";
             label5.TextAlign = ContentAlignment.TopCenter;
@@ -614,12 +632,11 @@
             // 
             label6.AutoSize = true;
             label6.Dock = DockStyle.Fill;
-            label6.Location = new Point(2, 51);
-            label6.Margin = new Padding(2, 0, 2, 0);
-            label6.MaximumSize = new Size(0, 28);
-            label6.MinimumSize = new Size(0, 28);
+            label6.Location = new Point(3, 60);
+            label6.MaximumSize = new Size(0, 33);
+            label6.MinimumSize = new Size(0, 33);
             label6.Name = "label6";
-            label6.Size = new Size(96, 28);
+            label6.Size = new Size(123, 33);
             label6.TabIndex = 1;
             label6.Text = "Y";
             label6.TextAlign = ContentAlignment.TopCenter;
@@ -628,12 +645,11 @@
             // 
             label7.AutoSize = true;
             label7.Dock = DockStyle.Fill;
-            label7.Location = new Point(2, 102);
-            label7.Margin = new Padding(2, 0, 2, 0);
-            label7.MaximumSize = new Size(0, 28);
-            label7.MinimumSize = new Size(0, 28);
+            label7.Location = new Point(3, 120);
+            label7.MaximumSize = new Size(0, 33);
+            label7.MinimumSize = new Size(0, 33);
             label7.Name = "label7";
-            label7.Size = new Size(96, 28);
+            label7.Size = new Size(123, 33);
             label7.TabIndex = 2;
             label7.Text = "瑙掑害(掳)";
             label7.TextAlign = ContentAlignment.TopCenter;
@@ -642,12 +658,11 @@
             // 
             label8.AutoSize = true;
             label8.Dock = DockStyle.Fill;
-            label8.Location = new Point(2, 153);
-            label8.Margin = new Padding(2, 0, 2, 0);
-            label8.MaximumSize = new Size(0, 28);
-            label8.MinimumSize = new Size(0, 28);
+            label8.Location = new Point(3, 180);
+            label8.MaximumSize = new Size(0, 33);
+            label8.MinimumSize = new Size(0, 33);
             label8.Name = "label8";
-            label8.Size = new Size(96, 28);
+            label8.Size = new Size(123, 33);
             label8.TabIndex = 3;
             label8.Text = "瀹藉害";
             label8.TextAlign = ContentAlignment.TopCenter;
@@ -655,50 +670,51 @@
             // dtxtCenterX
             // 
             dtxtCenterX.Dock = DockStyle.Fill;
-            dtxtCenterX.Location = new Point(102, 3);
-            dtxtCenterX.Margin = new Padding(2, 3, 2, 3);
+            dtxtCenterX.Location = new Point(132, 4);
+            dtxtCenterX.Margin = new Padding(3, 4, 3, 4);
             dtxtCenterX.Name = "dtxtCenterX";
             dtxtCenterX.ReadOnly = true;
-            dtxtCenterX.Size = new Size(293, 23);
+            dtxtCenterX.Size = new Size(377, 27);
             dtxtCenterX.TabIndex = 5;
             // 
             // dtxtCenterY
             // 
             dtxtCenterY.Dock = DockStyle.Fill;
-            dtxtCenterY.Location = new Point(102, 54);
-            dtxtCenterY.Margin = new Padding(2, 3, 2, 3);
+            dtxtCenterY.Location = new Point(132, 64);
+            dtxtCenterY.Margin = new Padding(3, 4, 3, 4);
             dtxtCenterY.Name = "dtxtCenterY";
             dtxtCenterY.ReadOnly = true;
-            dtxtCenterY.Size = new Size(293, 23);
+            dtxtCenterY.Size = new Size(377, 27);
             dtxtCenterY.TabIndex = 6;
             // 
             // dtxtAngle
             // 
             dtxtAngle.Dock = DockStyle.Fill;
-            dtxtAngle.Location = new Point(102, 105);
-            dtxtAngle.Margin = new Padding(2, 3, 2, 3);
+            dtxtAngle.Location = new Point(132, 124);
+            dtxtAngle.Margin = new Padding(3, 4, 3, 4);
             dtxtAngle.Name = "dtxtAngle";
             dtxtAngle.ReadOnly = true;
-            dtxtAngle.Size = new Size(293, 23);
+            dtxtAngle.Size = new Size(377, 27);
             dtxtAngle.TabIndex = 7;
             // 
             // dtxtWidth
             // 
             dtxtWidth.Dock = DockStyle.Fill;
-            dtxtWidth.Location = new Point(102, 156);
-            dtxtWidth.Margin = new Padding(2, 3, 2, 3);
+            dtxtWidth.Location = new Point(132, 184);
+            dtxtWidth.Margin = new Padding(3, 4, 3, 4);
             dtxtWidth.Name = "dtxtWidth";
             dtxtWidth.ReadOnly = true;
-            dtxtWidth.Size = new Size(293, 23);
+            dtxtWidth.Size = new Size(377, 27);
             dtxtWidth.TabIndex = 8;
             // 
             // label18
             // 
             label18.AutoSize = true;
             label18.Dock = DockStyle.Fill;
-            label18.Location = new Point(3, 255);
+            label18.Location = new Point(4, 300);
+            label18.Margin = new Padding(4, 0, 4, 0);
             label18.Name = "label18";
-            label18.Size = new Size(94, 51);
+            label18.Size = new Size(121, 60);
             label18.TabIndex = 10;
             label18.Text = "鏁伴噺";
             label18.TextAlign = ContentAlignment.TopCenter;
@@ -706,10 +722,11 @@
             // dtxtCount
             // 
             dtxtCount.Dock = DockStyle.Fill;
-            dtxtCount.Location = new Point(103, 258);
+            dtxtCount.Location = new Point(133, 304);
+            dtxtCount.Margin = new Padding(4, 4, 4, 4);
             dtxtCount.Name = "dtxtCount";
             dtxtCount.ReadOnly = true;
-            dtxtCount.Size = new Size(291, 23);
+            dtxtCount.Size = new Size(375, 27);
             dtxtCount.TabIndex = 11;
             // 
             // imgTabControl
@@ -717,19 +734,21 @@
             imgTabControl.Controls.Add(tabPageInputImage);
             imgTabControl.Controls.Add(tabPageRecordImage);
             imgTabControl.Dock = DockStyle.Fill;
-            imgTabControl.Location = new Point(420, 3);
+            imgTabControl.Location = new Point(540, 4);
+            imgTabControl.Margin = new Padding(4, 4, 4, 4);
             imgTabControl.Name = "imgTabControl";
             imgTabControl.SelectedIndex = 0;
-            imgTabControl.Size = new Size(621, 546);
+            imgTabControl.Size = new Size(798, 644);
             imgTabControl.TabIndex = 49;
             // 
             // tabPageInputImage
             // 
             tabPageInputImage.Controls.Add(pnlInputImage);
-            tabPageInputImage.Location = new Point(4, 26);
+            tabPageInputImage.Location = new Point(4, 29);
+            tabPageInputImage.Margin = new Padding(4, 4, 4, 4);
             tabPageInputImage.Name = "tabPageInputImage";
-            tabPageInputImage.Padding = new Padding(3);
-            tabPageInputImage.Size = new Size(613, 516);
+            tabPageInputImage.Padding = new Padding(4, 4, 4, 4);
+            tabPageInputImage.Size = new Size(790, 611);
             tabPageInputImage.TabIndex = 0;
             tabPageInputImage.Text = "杈撳叆鍥惧儚";
             tabPageInputImage.UseVisualStyleBackColor = true;
@@ -737,10 +756,11 @@
             // tabPageRecordImage
             // 
             tabPageRecordImage.Controls.Add(pnlRecordImage);
-            tabPageRecordImage.Location = new Point(4, 26);
+            tabPageRecordImage.Location = new Point(4, 29);
+            tabPageRecordImage.Margin = new Padding(4, 4, 4, 4);
             tabPageRecordImage.Name = "tabPageRecordImage";
-            tabPageRecordImage.Padding = new Padding(3);
-            tabPageRecordImage.Size = new Size(613, 516);
+            tabPageRecordImage.Padding = new Padding(4, 4, 4, 4);
+            tabPageRecordImage.Size = new Size(790, 609);
             tabPageRecordImage.TabIndex = 1;
             tabPageRecordImage.Text = "缁撴灉鍥惧儚";
             tabPageRecordImage.UseVisualStyleBackColor = true;
@@ -748,33 +768,22 @@
             // pnlRecordImage
             // 
             pnlRecordImage.Dock = DockStyle.Fill;
-            pnlRecordImage.Location = new Point(3, 3);
-            pnlRecordImage.Margin = new Padding(4);
+            pnlRecordImage.Location = new Point(4, 4);
+            pnlRecordImage.Margin = new Padding(5, 5, 5, 5);
             pnlRecordImage.Name = "pnlRecordImage";
-            pnlRecordImage.Size = new Size(607, 510);
+            pnlRecordImage.Size = new Size(782, 601);
             pnlRecordImage.TabIndex = 45;
-            // 
-            // btnShowROI
-            // 
-            btnShowROI.Dock = DockStyle.Fill;
-            btnShowROI.Location = new Point(3, 207);
-            btnShowROI.Name = "btnShowROI";
-            btnShowROI.Size = new Size(84, 45);
-            btnShowROI.TabIndex = 15;
-            btnShowROI.Text = "鏄剧ず鎵剧嚎鍖哄煙";
-            btnShowROI.UseVisualStyleBackColor = true;
-            btnShowROI.Click += btnShowROI_Click;
             // 
             // HFindLineToolEdit
             // 
-            AutoScaleDimensions = new SizeF(7F, 17F);
+            AutoScaleDimensions = new SizeF(9F, 20F);
             AutoScaleMode = AutoScaleMode.Font;
             Controls.Add(MainTableLayoutPanel);
             Controls.Add(BtmStatusStrip);
             Controls.Add(TopToolStrip);
-            Margin = new Padding(2, 3, 2, 3);
+            Margin = new Padding(3, 4, 3, 4);
             Name = "HFindLineToolEdit";
-            Size = new Size(1044, 599);
+            Size = new Size(1342, 705);
             Load += HFindLineToolEdit_Load;
             tablePanelParas.ResumeLayout(false);
             tablePanelParas.PerformLayout();
diff --git a/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.resx b/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.resx
index 551e0b0..3d728b5 100644
--- a/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.resx
+++ b/LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -117,10 +117,13 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <metadata name="TopToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="lblMsgToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
+  <metadata name="TopToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>183, 17</value>
+  </metadata>
   <metadata name="BtmStatusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>129, 17</value>
+    <value>340, 17</value>
   </metadata>
 </root>
\ No newline at end of file
diff --git a/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementTool.cs b/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementTool.cs
new file mode 100644
index 0000000..1d47cbb
--- /dev/null
+++ b/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementTool.cs
@@ -0,0 +1,180 @@
+锘縰sing HalconDotNet;
+using LB_VisionControl;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using static System.Runtime.InteropServices.JavaScript.JSType;
+
+namespace LB_VisionProcesses.Alogrithms.Halcon._2D.HEdgeExtraction
+{
+    public enum ImageEnhancementType { Emphasize, EquHisto, ScaleMax }
+
+    [Process("Halcon鍥惧儚澧炲己", Category = "Halcon2D宸ュ叿", Description = "鍒涘缓鍥惧儚澧炲己宸ュ叿")]
+    internal class HImageEnhancementTool : TAlgorithm
+    {
+        public HImageEnhancementTool()
+        {
+            strProcessClass = "LB_VisionProcesses.Alogrithms.Halcon.HImageEnhancementTool";
+            strProcessName = "Halcon鍥惧儚澧炲己宸ュ叿";
+
+            Params.Inputs.Add("婊ゆ尝鍣ㄧ被鍨�", "杈圭紭澧炲己");
+            Params.Inputs.Add("鎺╄啘瀹�", 2.0);
+            Params.Inputs.Add("鎺╄啘楂�", 10);
+            Params.Inputs.Add("澧炲己鍥犲瓙", 20);
+            //emphasize(Image : ImageEmphasize : MaskWidth, MaskHeight, Factor : )
+
+            Params.Inputs.Add("婊ゆ尝鍣ㄧ被鍨�", "鐩存柟鍥惧潎琛″寲");
+            //equ_histo_image(Image : ImageEquHisto : : )
+
+            Params.Inputs.Add("婊ゆ尝鍣ㄧ被鍨�", "姣斾緥澧炲己");
+            //scale_image_max(Image : ImageScaleMax : : )
+
+            Params.ROI = new HSegment(0, 0, 250, 250);
+        }
+    
+        /// <summary>
+        /// 绠楀瓙閫昏緫
+        /// </summary>
+        public override void TAlgorithmMain()
+        {
+            #region 鍒濆鍖栧彉閲�
+            HObject ho_Regions, ho_LineXld;
+            HOperatorSet.GenEmptyObj(out ho_Regions);
+            HOperatorSet.GenEmptyObj(out ho_LineXld);
+            #endregion
+
+            try
+            {
+                if (InputImage == null)
+                {
+                    Msg = "杈撳叆鍥剧墖涓虹┖";
+                    Result = false;
+                    return;
+                }
+
+                #region 瑁佸壀鍖哄煙
+                if (!(Params.ROI is HSegment))
+                {
+                    Msg = "ROI绫诲瀷閿欒,蹇呴』涓篐Segment绫诲瀷";
+                    Result = false;
+                    return;
+                }
+
+                if (!(InputImage is HObject))
+                {
+                    Msg = "杈撳叆鍥剧墖绫诲瀷閿欒,蹇呴』涓篐Object绫诲瀷";
+                    Result = false;
+                    return;
+                }
+
+                HObject DomainImage = ((HObject)InputImage)?.CopyObj(1, -1);
+                #endregion
+
+                #region 绠楀瓙閫昏緫
+                Record = new ObjectRecord();
+                HObject hoDomainImage = DomainImage as HObject;
+                HTuple hv_Channels = new HTuple();
+                //鍒ゆ柇鏄惁涓虹伆搴﹀浘
+                using (HDevDisposeHelper dh = new HDevDisposeHelper())
+                {
+                    try
+                    {
+                        HOperatorSet.CountChannels(hoDomainImage, out hv_Channels);
+                        if (hv_Channels.TupleInt() != 1)
+                            HOperatorSet.Rgb1ToGray(hoDomainImage, out hoDomainImage);
+
+                        //杞崲鍚庡啀娆℃鏌ユ槸鍚︿负鐏板害鍥�
+                        HOperatorSet.CountChannels(hoDomainImage, out hv_Channels);
+                        if (hv_Channels.TupleInt() != 1)
+                        {
+                            HOperatorSet.Rgb1ToGray(hoDomainImage, out hoDomainImage);
+                            Msg = "杈撳叆鍥剧墖涓嶄负鐏板害鍥�";
+                            Result = false;
+                            return;
+                        }
+                    }
+                    catch
+                    {
+                        Msg = "杈撳叆鍥剧墖涓嶄负鐏板害鍥句笖杞崲澶辫触";
+                        Result = false;
+                        return;
+                    }
+                }
+
+                int hv_MaskWidth = Convert.ToInt16(Params.Inputs["鎺╄啘瀹�"]);
+                int hv_MaskHight = Convert.ToInt16(Params.Inputs["鎺╄啘楂�"]);
+                double hv_Factor = Convert.ToDouble(Params.Inputs["澧炲己鍥犲瓙"]);
+
+                Enum.TryParse(Params.Inputs["鍥惧儚澧炲己绫诲瀷"]?.ToString(), out ImageEnhancementType imageEnhancementType);
+                string hv_ImageEnhancementType = "scaleMax";
+                switch (imageEnhancementType)
+                {
+                    case ImageEnhancementType.Emphasize:
+                        hv_ImageEnhancementType = "emphasize";
+
+                        break;
+                    case ImageEnhancementType.EquHisto:
+                        hv_ImageEnhancementType = "equHisto";
+
+                        break;
+                    case ImageEnhancementType.ScaleMax:
+                    default:
+                        hv_ImageEnhancementType = "scaleMax";
+                        break;
+                }
+                double hv_Row1 = Convert.ToDouble(((HSegment)Params.ROI).BeginRow + Params.Fixture.Row);
+                double hv_Column1 = Convert.ToDouble(((HSegment)Params.ROI).BeginColumn + Params.Fixture.Column);
+                double hv_Row2 = Convert.ToDouble(((HSegment)Params.ROI).EndRow + Params.Fixture.Row);
+                double hv_Column2 = Convert.ToDouble(((HSegment)Params.ROI).EndColumn + Params.Fixture.Column);
+
+                Emphsize(hoDomainImage, out ho_Regions, hv_Column1, hv_Row2, hv_Column2);
+                #endregion
+
+
+                #region 鐢熸垚OutputImage缁欏悗缁鐞�
+                try
+                {
+                    OutputImage = hoDomainImage;
+                }
+                catch (Exception ex)
+                {
+                    Msg = "鐢熸垚OutputImage澶辫触,鍘熷洜鏄�:" + ex.ToString();
+                    Result = false;
+                    return;
+                }
+                #endregion
+
+                if (Msg == "杩愯瓒呮椂")
+                {
+                    Result = false;
+                    return;
+                }
+
+                Msg = "杩愯鎴愬姛";
+                Result = true;
+                return;
+            }
+            catch (Exception ex)
+            {
+                Msg = "杩愯澶辫触,鍘熷洜鏄�:" + ex.ToString().TrimEnd();
+                OutputImage = null;
+                Result = false;
+                return;
+            }
+            finally
+            {
+                if (!Result)
+                {
+                    Params.Outputs.Add("Segment", new HSegment());
+                }
+
+                bCompleted = true;
+                #region 鍐呭瓨閲婃斁
+                ho_Regions.Dispose();
+                #endregion
+            }
+        }
+    }
+}
diff --git a/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.Designer.cs b/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.Designer.cs
new file mode 100644
index 0000000..28aea30
--- /dev/null
+++ b/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.Designer.cs
@@ -0,0 +1,683 @@
+锘縰sing LB_VisionProcesses.Alogrithms;
+
+namespace LB_VisionProcesses.Alogrithms.Halcon._2D.HEdgeExtractionTool
+{
+    partial class HImageEnhancementToolEdit
+    {
+        /// <summary> 
+        /// 蹇呴渶鐨勮璁″櫒鍙橀噺銆�
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 娓呯悊鎵�鏈夋鍦ㄤ娇鐢ㄧ殑璧勬簮銆�
+        /// </summary>
+        /// <param name="disposing">濡傛灉搴旈噴鏀炬墭绠¤祫婧愶紝涓� true锛涘惁鍒欎负 false銆�</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 缁勪欢璁捐鍣ㄧ敓鎴愮殑浠g爜
+
+        /// <summary> 
+        /// 璁捐鍣ㄦ敮鎸佹墍闇�鐨勬柟娉� - 涓嶈淇敼
+        /// 浣跨敤浠g爜缂栬緫鍣ㄤ慨鏀规鏂规硶鐨勫唴瀹广��
+        /// </summary>
+        private void InitializeComponent()
+        {
+            pnlInputImage = new Panel();
+            TopToolStrip = new ToolStrip();
+            btnRun = new ToolStripButton();
+            btnLoadImage = new ToolStripButton();
+            btnSaveParas = new ToolStripButton();
+            btnLoadParas = new ToolStripButton();
+            BtmStatusStrip = new StatusStrip();
+            lblResult = new ToolStripStatusLabel();
+            lblMsg = new ToolStripStatusLabel();
+            lblRunTime = new ToolStripStatusLabel();
+            MainTableLayoutPanel = new TableLayoutPanel();
+            parasTabControl = new TabControl();
+            tabPage1 = new TabPage();
+            tabPage5 = new TabPage();
+            tableLayoutPanel2 = new TableLayoutPanel();
+            cmbTypeRoi = new ComboBox();
+            label21 = new Label();
+            label22 = new Label();
+            cmbFixture = new ComboBox();
+            ckbDrawRoi = new CheckBox();
+            tabPage2 = new TabPage();
+            tableLayoutResults = new TableLayoutPanel();
+            dtxtHeight = new TextBox();
+            label9 = new Label();
+            label5 = new Label();
+            label6 = new Label();
+            label7 = new Label();
+            label8 = new Label();
+            dtxtCenterX = new TextBox();
+            dtxtCenterY = new TextBox();
+            dtxtAngle = new TextBox();
+            dtxtWidth = new TextBox();
+            label18 = new Label();
+            dtxtCount = new TextBox();
+            imgTabControl = new TabControl();
+            tabPageInputImage = new TabPage();
+            tabPageRecordImage = new TabPage();
+            pnlRecordImage = new Panel();
+            tableLayoutPanel1 = new TableLayoutPanel();
+            tableLayoutPanel3 = new TableLayoutPanel();
+            label14 = new Label();
+            cmbImageEnhancement = new ComboBox();
+            button1 = new Button();
+            dataGridView1 = new DataGridView();
+            TopToolStrip.SuspendLayout();
+            BtmStatusStrip.SuspendLayout();
+            MainTableLayoutPanel.SuspendLayout();
+            parasTabControl.SuspendLayout();
+            tabPage1.SuspendLayout();
+            tabPage5.SuspendLayout();
+            tableLayoutPanel2.SuspendLayout();
+            tabPage2.SuspendLayout();
+            tableLayoutResults.SuspendLayout();
+            imgTabControl.SuspendLayout();
+            tabPageInputImage.SuspendLayout();
+            tabPageRecordImage.SuspendLayout();
+            tableLayoutPanel1.SuspendLayout();
+            tableLayoutPanel3.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)dataGridView1).BeginInit();
+            SuspendLayout();
+            // 
+            // pnlInputImage
+            // 
+            pnlInputImage.Dock = DockStyle.Fill;
+            pnlInputImage.Location = new Point(4, 4);
+            pnlInputImage.Margin = new Padding(5);
+            pnlInputImage.Name = "pnlInputImage";
+            pnlInputImage.Size = new Size(782, 603);
+            pnlInputImage.TabIndex = 44;
+            // 
+            // TopToolStrip
+            // 
+            TopToolStrip.ImageScalingSize = new Size(20, 20);
+            TopToolStrip.Items.AddRange(new ToolStripItem[] { btnRun, btnLoadImage, btnSaveParas, btnLoadParas });
+            TopToolStrip.Location = new Point(0, 0);
+            TopToolStrip.Name = "TopToolStrip";
+            TopToolStrip.Size = new Size(1342, 27);
+            TopToolStrip.TabIndex = 45;
+            TopToolStrip.Text = "toolStrip1";
+            // 
+            // btnRun
+            // 
+            btnRun.BackgroundImageLayout = ImageLayout.Zoom;
+            btnRun.ImageTransparentColor = Color.Magenta;
+            btnRun.Name = "btnRun";
+            btnRun.Size = new Size(43, 24);
+            btnRun.Text = "杩愯";
+            // 
+            // btnLoadImage
+            // 
+            btnLoadImage.ImageTransparentColor = Color.Magenta;
+            btnLoadImage.Name = "btnLoadImage";
+            btnLoadImage.Size = new Size(43, 24);
+            btnLoadImage.Text = "瀵煎浘";
+            // 
+            // btnSaveParas
+            // 
+            btnSaveParas.ImageTransparentColor = Color.Magenta;
+            btnSaveParas.Name = "btnSaveParas";
+            btnSaveParas.Size = new Size(43, 24);
+            btnSaveParas.Text = "淇濆瓨";
+            // 
+            // btnLoadParas
+            // 
+            btnLoadParas.ImageTransparentColor = Color.Magenta;
+            btnLoadParas.Name = "btnLoadParas";
+            btnLoadParas.Size = new Size(43, 24);
+            btnLoadParas.Text = "鍔犺浇";
+            // 
+            // BtmStatusStrip
+            // 
+            BtmStatusStrip.ImageScalingSize = new Size(20, 20);
+            BtmStatusStrip.Items.AddRange(new ToolStripItem[] { lblResult, lblMsg, lblRunTime });
+            BtmStatusStrip.Location = new Point(0, 679);
+            BtmStatusStrip.Name = "BtmStatusStrip";
+            BtmStatusStrip.Padding = new Padding(1, 0, 18, 0);
+            BtmStatusStrip.Size = new Size(1342, 26);
+            BtmStatusStrip.TabIndex = 46;
+            BtmStatusStrip.Text = "statusStrip1";
+            // 
+            // lblResult
+            // 
+            lblResult.Name = "lblResult";
+            lblResult.Size = new Size(42, 20);
+            lblResult.Text = "True";
+            // 
+            // lblMsg
+            // 
+            lblMsg.Name = "lblMsg";
+            lblMsg.Size = new Size(69, 20);
+            lblMsg.Text = "杩愯鎴愬姛";
+            // 
+            // lblRunTime
+            // 
+            lblRunTime.Name = "lblRunTime";
+            lblRunTime.Size = new Size(39, 20);
+            lblRunTime.Text = "0ms";
+            // 
+            // MainTableLayoutPanel
+            // 
+            MainTableLayoutPanel.ColumnCount = 2;
+            MainTableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F));
+            MainTableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 60F));
+            MainTableLayoutPanel.Controls.Add(parasTabControl, 0, 0);
+            MainTableLayoutPanel.Controls.Add(imgTabControl, 1, 0);
+            MainTableLayoutPanel.Dock = DockStyle.Fill;
+            MainTableLayoutPanel.Location = new Point(0, 27);
+            MainTableLayoutPanel.Margin = new Padding(4);
+            MainTableLayoutPanel.Name = "MainTableLayoutPanel";
+            MainTableLayoutPanel.RowCount = 1;
+            MainTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
+            MainTableLayoutPanel.Size = new Size(1342, 652);
+            MainTableLayoutPanel.TabIndex = 47;
+            // 
+            // parasTabControl
+            // 
+            parasTabControl.Controls.Add(tabPage1);
+            parasTabControl.Controls.Add(tabPage5);
+            parasTabControl.Controls.Add(tabPage2);
+            parasTabControl.Dock = DockStyle.Fill;
+            parasTabControl.Location = new Point(4, 4);
+            parasTabControl.Margin = new Padding(4);
+            parasTabControl.Name = "parasTabControl";
+            parasTabControl.SelectedIndex = 0;
+            parasTabControl.Size = new Size(528, 644);
+            parasTabControl.TabIndex = 48;
+            // 
+            // tabPage1
+            // 
+            tabPage1.Controls.Add(tableLayoutPanel1);
+            tabPage1.Location = new Point(4, 29);
+            tabPage1.Margin = new Padding(4);
+            tabPage1.Name = "tabPage1";
+            tabPage1.Padding = new Padding(4);
+            tabPage1.Size = new Size(520, 611);
+            tabPage1.TabIndex = 0;
+            tabPage1.Text = "杈撳叆鍙傛暟";
+            tabPage1.UseVisualStyleBackColor = true;
+            // 
+            // tabPage5
+            // 
+            tabPage5.Controls.Add(tableLayoutPanel2);
+            tabPage5.Location = new Point(4, 29);
+            tabPage5.Margin = new Padding(4);
+            tabPage5.Name = "tabPage5";
+            tabPage5.Size = new Size(520, 611);
+            tabPage5.TabIndex = 2;
+            tabPage5.Text = "杩愯鍙傛暟";
+            tabPage5.UseVisualStyleBackColor = true;
+            // 
+            // tableLayoutPanel2
+            // 
+            tableLayoutPanel2.ColumnCount = 4;
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 77F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 193F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 26F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
+            tableLayoutPanel2.Controls.Add(cmbTypeRoi, 1, 0);
+            tableLayoutPanel2.Controls.Add(label21, 0, 0);
+            tableLayoutPanel2.Controls.Add(label22, 0, 1);
+            tableLayoutPanel2.Controls.Add(cmbFixture, 1, 1);
+            tableLayoutPanel2.Controls.Add(ckbDrawRoi, 2, 0);
+            tableLayoutPanel2.Location = new Point(4, 4);
+            tableLayoutPanel2.Margin = new Padding(4);
+            tableLayoutPanel2.Name = "tableLayoutPanel2";
+            tableLayoutPanel2.RowCount = 8;
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
+            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
+            tableLayoutPanel2.Size = new Size(415, 364);
+            tableLayoutPanel2.TabIndex = 4;
+            // 
+            // cmbTypeRoi
+            // 
+            cmbTypeRoi.Enabled = false;
+            cmbTypeRoi.FormattingEnabled = true;
+            cmbTypeRoi.Location = new Point(81, 4);
+            cmbTypeRoi.Margin = new Padding(4);
+            cmbTypeRoi.Name = "cmbTypeRoi";
+            cmbTypeRoi.Size = new Size(154, 28);
+            cmbTypeRoi.TabIndex = 1;
+            // 
+            // label21
+            // 
+            label21.AutoSize = true;
+            label21.Dock = DockStyle.Fill;
+            label21.Location = new Point(4, 0);
+            label21.Margin = new Padding(4, 0, 4, 0);
+            label21.Name = "label21";
+            label21.Size = new Size(69, 35);
+            label21.TabIndex = 3;
+            label21.Text = "ROI";
+            label21.TextAlign = ContentAlignment.MiddleCenter;
+            // 
+            // label22
+            // 
+            label22.AutoSize = true;
+            label22.Dock = DockStyle.Fill;
+            label22.Location = new Point(4, 35);
+            label22.Margin = new Padding(4, 0, 4, 0);
+            label22.Name = "label22";
+            label22.Size = new Size(69, 35);
+            label22.TabIndex = 4;
+            label22.Text = "Fixture";
+            label22.TextAlign = ContentAlignment.MiddleCenter;
+            // 
+            // cmbFixture
+            // 
+            cmbFixture.FormattingEnabled = true;
+            cmbFixture.Location = new Point(81, 39);
+            cmbFixture.Margin = new Padding(4);
+            cmbFixture.Name = "cmbFixture";
+            cmbFixture.Size = new Size(154, 28);
+            cmbFixture.TabIndex = 5;
+            // 
+            // ckbDrawRoi
+            // 
+            ckbDrawRoi.AutoSize = true;
+            ckbDrawRoi.CheckAlign = ContentAlignment.MiddleCenter;
+            ckbDrawRoi.Location = new Point(274, 4);
+            ckbDrawRoi.Margin = new Padding(4);
+            ckbDrawRoi.Name = "ckbDrawRoi";
+            ckbDrawRoi.Size = new Size(18, 17);
+            ckbDrawRoi.TabIndex = 2;
+            ckbDrawRoi.UseVisualStyleBackColor = true;
+            // 
+            // tabPage2
+            // 
+            tabPage2.Controls.Add(tableLayoutResults);
+            tabPage2.Location = new Point(4, 29);
+            tabPage2.Margin = new Padding(4);
+            tabPage2.Name = "tabPage2";
+            tabPage2.Padding = new Padding(4);
+            tabPage2.Size = new Size(520, 611);
+            tabPage2.TabIndex = 1;
+            tabPage2.Text = "杈撳嚭缁撴灉";
+            tabPage2.UseVisualStyleBackColor = true;
+            // 
+            // tableLayoutResults
+            // 
+            tableLayoutResults.ColumnCount = 2;
+            tableLayoutResults.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 129F));
+            tableLayoutResults.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
+            tableLayoutResults.Controls.Add(dtxtHeight, 1, 4);
+            tableLayoutResults.Controls.Add(label9, 0, 4);
+            tableLayoutResults.Controls.Add(label5, 0, 0);
+            tableLayoutResults.Controls.Add(label6, 0, 1);
+            tableLayoutResults.Controls.Add(label7, 0, 2);
+            tableLayoutResults.Controls.Add(label8, 0, 3);
+            tableLayoutResults.Controls.Add(dtxtCenterX, 1, 0);
+            tableLayoutResults.Controls.Add(dtxtCenterY, 1, 1);
+            tableLayoutResults.Controls.Add(dtxtAngle, 1, 2);
+            tableLayoutResults.Controls.Add(dtxtWidth, 1, 3);
+            tableLayoutResults.Controls.Add(label18, 0, 5);
+            tableLayoutResults.Controls.Add(dtxtCount, 1, 5);
+            tableLayoutResults.Dock = DockStyle.Fill;
+            tableLayoutResults.Location = new Point(4, 4);
+            tableLayoutResults.Margin = new Padding(3, 4, 3, 4);
+            tableLayoutResults.Name = "tableLayoutResults";
+            tableLayoutResults.RowCount = 10;
+            tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
+            tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
+            tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
+            tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
+            tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
+            tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
+            tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
+            tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
+            tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
+            tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
+            tableLayoutResults.Size = new Size(512, 603);
+            tableLayoutResults.TabIndex = 1;
+            // 
+            // dtxtHeight
+            // 
+            dtxtHeight.Dock = DockStyle.Fill;
+            dtxtHeight.Location = new Point(132, 244);
+            dtxtHeight.Margin = new Padding(3, 4, 3, 4);
+            dtxtHeight.Name = "dtxtHeight";
+            dtxtHeight.ReadOnly = true;
+            dtxtHeight.Size = new Size(377, 27);
+            dtxtHeight.TabIndex = 9;
+            // 
+            // label9
+            // 
+            label9.AutoSize = true;
+            label9.Dock = DockStyle.Fill;
+            label9.Location = new Point(3, 240);
+            label9.MaximumSize = new Size(0, 33);
+            label9.MinimumSize = new Size(0, 33);
+            label9.Name = "label9";
+            label9.Size = new Size(123, 33);
+            label9.TabIndex = 3;
+            label9.Text = "楂樺害";
+            label9.TextAlign = ContentAlignment.TopCenter;
+            // 
+            // label5
+            // 
+            label5.AutoSize = true;
+            label5.Dock = DockStyle.Fill;
+            label5.Location = new Point(3, 0);
+            label5.MaximumSize = new Size(0, 33);
+            label5.MinimumSize = new Size(0, 33);
+            label5.Name = "label5";
+            label5.Size = new Size(123, 33);
+            label5.TabIndex = 0;
+            label5.Text = "X";
+            label5.TextAlign = ContentAlignment.TopCenter;
+            // 
+            // label6
+            // 
+            label6.AutoSize = true;
+            label6.Dock = DockStyle.Fill;
+            label6.Location = new Point(3, 60);
+            label6.MaximumSize = new Size(0, 33);
+            label6.MinimumSize = new Size(0, 33);
+            label6.Name = "label6";
+            label6.Size = new Size(123, 33);
+            label6.TabIndex = 1;
+            label6.Text = "Y";
+            label6.TextAlign = ContentAlignment.TopCenter;
+            // 
+            // label7
+            // 
+            label7.AutoSize = true;
+            label7.Dock = DockStyle.Fill;
+            label7.Location = new Point(3, 120);
+            label7.MaximumSize = new Size(0, 33);
+            label7.MinimumSize = new Size(0, 33);
+            label7.Name = "label7";
+            label7.Size = new Size(123, 33);
+            label7.TabIndex = 2;
+            label7.Text = "瑙掑害(掳)";
+            label7.TextAlign = ContentAlignment.TopCenter;
+            // 
+            // label8
+            // 
+            label8.AutoSize = true;
+            label8.Dock = DockStyle.Fill;
+            label8.Location = new Point(3, 180);
+            label8.MaximumSize = new Size(0, 33);
+            label8.MinimumSize = new Size(0, 33);
+            label8.Name = "label8";
+            label8.Size = new Size(123, 33);
+            label8.TabIndex = 3;
+            label8.Text = "瀹藉害";
+            label8.TextAlign = ContentAlignment.TopCenter;
+            // 
+            // dtxtCenterX
+            // 
+            dtxtCenterX.Dock = DockStyle.Fill;
+            dtxtCenterX.Location = new Point(132, 4);
+            dtxtCenterX.Margin = new Padding(3, 4, 3, 4);
+            dtxtCenterX.Name = "dtxtCenterX";
+            dtxtCenterX.ReadOnly = true;
+            dtxtCenterX.Size = new Size(377, 27);
+            dtxtCenterX.TabIndex = 5;
+            // 
+            // dtxtCenterY
+            // 
+            dtxtCenterY.Dock = DockStyle.Fill;
+            dtxtCenterY.Location = new Point(132, 64);
+            dtxtCenterY.Margin = new Padding(3, 4, 3, 4);
+            dtxtCenterY.Name = "dtxtCenterY";
+            dtxtCenterY.ReadOnly = true;
+            dtxtCenterY.Size = new Size(377, 27);
+            dtxtCenterY.TabIndex = 6;
+            // 
+            // dtxtAngle
+            // 
+            dtxtAngle.Dock = DockStyle.Fill;
+            dtxtAngle.Location = new Point(132, 124);
+            dtxtAngle.Margin = new Padding(3, 4, 3, 4);
+            dtxtAngle.Name = "dtxtAngle";
+            dtxtAngle.ReadOnly = true;
+            dtxtAngle.Size = new Size(377, 27);
+            dtxtAngle.TabIndex = 7;
+            // 
+            // dtxtWidth
+            // 
+            dtxtWidth.Dock = DockStyle.Fill;
+            dtxtWidth.Location = new Point(132, 184);
+            dtxtWidth.Margin = new Padding(3, 4, 3, 4);
+            dtxtWidth.Name = "dtxtWidth";
+            dtxtWidth.ReadOnly = true;
+            dtxtWidth.Size = new Size(377, 27);
+            dtxtWidth.TabIndex = 8;
+            // 
+            // label18
+            // 
+            label18.AutoSize = true;
+            label18.Dock = DockStyle.Fill;
+            label18.Location = new Point(4, 300);
+            label18.Margin = new Padding(4, 0, 4, 0);
+            label18.Name = "label18";
+            label18.Size = new Size(121, 60);
+            label18.TabIndex = 10;
+            label18.Text = "鏁伴噺";
+            label18.TextAlign = ContentAlignment.TopCenter;
+            // 
+            // dtxtCount
+            // 
+            dtxtCount.Dock = DockStyle.Fill;
+            dtxtCount.Location = new Point(133, 304);
+            dtxtCount.Margin = new Padding(4);
+            dtxtCount.Name = "dtxtCount";
+            dtxtCount.ReadOnly = true;
+            dtxtCount.Size = new Size(375, 27);
+            dtxtCount.TabIndex = 11;
+            // 
+            // imgTabControl
+            // 
+            imgTabControl.Controls.Add(tabPageInputImage);
+            imgTabControl.Controls.Add(tabPageRecordImage);
+            imgTabControl.Dock = DockStyle.Fill;
+            imgTabControl.Location = new Point(540, 4);
+            imgTabControl.Margin = new Padding(4);
+            imgTabControl.Name = "imgTabControl";
+            imgTabControl.SelectedIndex = 0;
+            imgTabControl.Size = new Size(798, 644);
+            imgTabControl.TabIndex = 49;
+            // 
+            // tabPageInputImage
+            // 
+            tabPageInputImage.Controls.Add(pnlInputImage);
+            tabPageInputImage.Location = new Point(4, 29);
+            tabPageInputImage.Margin = new Padding(4);
+            tabPageInputImage.Name = "tabPageInputImage";
+            tabPageInputImage.Padding = new Padding(4);
+            tabPageInputImage.Size = new Size(790, 611);
+            tabPageInputImage.TabIndex = 0;
+            tabPageInputImage.Text = "杈撳叆鍥惧儚";
+            tabPageInputImage.UseVisualStyleBackColor = true;
+            // 
+            // tabPageRecordImage
+            // 
+            tabPageRecordImage.Controls.Add(pnlRecordImage);
+            tabPageRecordImage.Location = new Point(4, 29);
+            tabPageRecordImage.Margin = new Padding(4);
+            tabPageRecordImage.Name = "tabPageRecordImage";
+            tabPageRecordImage.Padding = new Padding(4);
+            tabPageRecordImage.Size = new Size(790, 611);
+            tabPageRecordImage.TabIndex = 1;
+            tabPageRecordImage.Text = "缁撴灉鍥惧儚";
+            tabPageRecordImage.UseVisualStyleBackColor = true;
+            // 
+            // pnlRecordImage
+            // 
+            pnlRecordImage.Dock = DockStyle.Fill;
+            pnlRecordImage.Location = new Point(4, 4);
+            pnlRecordImage.Margin = new Padding(5);
+            pnlRecordImage.Name = "pnlRecordImage";
+            pnlRecordImage.Size = new Size(782, 603);
+            pnlRecordImage.TabIndex = 45;
+            // 
+            // tableLayoutPanel1
+            // 
+            tableLayoutPanel1.ColumnCount = 1;
+            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
+            tableLayoutPanel1.Controls.Add(tableLayoutPanel3, 0, 0);
+            tableLayoutPanel1.Controls.Add(dataGridView1, 0, 1);
+            tableLayoutPanel1.Dock = DockStyle.Fill;
+            tableLayoutPanel1.Location = new Point(4, 4);
+            tableLayoutPanel1.Name = "tableLayoutPanel1";
+            tableLayoutPanel1.RowCount = 2;
+            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 10.2819233F));
+            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 89.71808F));
+            tableLayoutPanel1.Size = new Size(512, 603);
+            tableLayoutPanel1.TabIndex = 1;
+            // 
+            // tableLayoutPanel3
+            // 
+            tableLayoutPanel3.ColumnCount = 3;
+            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 31.5363884F));
+            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 68.4636154F));
+            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 136F));
+            tableLayoutPanel3.Controls.Add(cmbImageEnhancement, 1, 0);
+            tableLayoutPanel3.Controls.Add(label14, 0, 0);
+            tableLayoutPanel3.Controls.Add(button1, 2, 0);
+            tableLayoutPanel3.Location = new Point(3, 3);
+            tableLayoutPanel3.Name = "tableLayoutPanel3";
+            tableLayoutPanel3.RowCount = 1;
+            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
+            tableLayoutPanel3.Size = new Size(506, 54);
+            tableLayoutPanel3.TabIndex = 1;
+            // 
+            // label14
+            // 
+            label14.AutoSize = true;
+            label14.Location = new Point(3, 0);
+            label14.MaximumSize = new Size(0, 33);
+            label14.MinimumSize = new Size(0, 33);
+            label14.Name = "label14";
+            label14.Size = new Size(69, 33);
+            label14.TabIndex = 1;
+            label14.Text = "婊ゆ尝绫诲瀷";
+            label14.TextAlign = ContentAlignment.MiddleCenter;
+            // 
+            // cmbImageEnhancement
+            // 
+            cmbImageEnhancement.FormattingEnabled = true;
+            cmbImageEnhancement.Location = new Point(120, 4);
+            cmbImageEnhancement.Margin = new Padding(4);
+            cmbImageEnhancement.Name = "cmbImageEnhancement";
+            cmbImageEnhancement.Size = new Size(129, 28);
+            cmbImageEnhancement.TabIndex = 14;
+            // 
+            // button1
+            // 
+            button1.Location = new Point(372, 3);
+            button1.Name = "button1";
+            button1.Size = new Size(131, 48);
+            button1.TabIndex = 15;
+            button1.Text = "娣诲姞";
+            button1.UseVisualStyleBackColor = true;
+            // 
+            // dataGridView1
+            // 
+            dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridView1.Location = new Point(3, 64);
+            dataGridView1.Name = "dataGridView1";
+            dataGridView1.RowHeadersWidth = 51;
+            dataGridView1.Size = new Size(506, 536);
+            dataGridView1.TabIndex = 2;
+            // 
+            // HImageEnhancementToolEdit
+            // 
+            AutoScaleDimensions = new SizeF(9F, 20F);
+            AutoScaleMode = AutoScaleMode.Font;
+            Controls.Add(MainTableLayoutPanel);
+            Controls.Add(BtmStatusStrip);
+            Controls.Add(TopToolStrip);
+            Margin = new Padding(3, 4, 3, 4);
+            Name = "HImageEnhancementToolEdit";
+            Size = new Size(1342, 705);
+            TopToolStrip.ResumeLayout(false);
+            TopToolStrip.PerformLayout();
+            BtmStatusStrip.ResumeLayout(false);
+            BtmStatusStrip.PerformLayout();
+            MainTableLayoutPanel.ResumeLayout(false);
+            parasTabControl.ResumeLayout(false);
+            tabPage1.ResumeLayout(false);
+            tabPage5.ResumeLayout(false);
+            tableLayoutPanel2.ResumeLayout(false);
+            tableLayoutPanel2.PerformLayout();
+            tabPage2.ResumeLayout(false);
+            tableLayoutResults.ResumeLayout(false);
+            tableLayoutResults.PerformLayout();
+            imgTabControl.ResumeLayout(false);
+            tabPageInputImage.ResumeLayout(false);
+            tabPageRecordImage.ResumeLayout(false);
+            tableLayoutPanel1.ResumeLayout(false);
+            tableLayoutPanel3.ResumeLayout(false);
+            tableLayoutPanel3.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)dataGridView1).EndInit();
+            ResumeLayout(false);
+            PerformLayout();
+        }
+
+        #endregion
+        private System.Windows.Forms.Panel pnlInputImage;
+        private ToolStrip TopToolStrip;
+        private ToolStripButton btnRun;
+        private StatusStrip BtmStatusStrip;
+        private ToolStripStatusLabel lblResult;
+        private ToolStripStatusLabel lblMsg;
+        private TableLayoutPanel MainTableLayoutPanel;
+        private ToolStripButton btnLoadImage;
+        private TabControl parasTabControl;
+        private TabPage tabPage1;
+        private TabPage tabPage2;
+        private TableLayoutPanel tableLayoutResults;
+        private Label label5;
+        private Label label6;
+        private Label label7;
+        private Label label8;
+        private TextBox dtxtCenterX;
+        private TextBox dtxtCenterY;
+        private TextBox dtxtAngle;
+        private TextBox dtxtWidth;
+        private TextBox dtxtHeight;
+        private Label label9;
+        private TabPage tabPage5;
+        private TabControl imgTabControl;
+        private TabPage tabPageInputImage;
+        private TabPage tabPageRecordImage;
+        private ToolStripButton btnSaveParas;
+        private ToolStripButton btnLoadParas;
+        private Panel pnlRecordImage;
+        private Label label18;
+        private TextBox dtxtCount;
+        private ToolStripStatusLabel lblRunTime;
+        private TableLayoutPanel tableLayoutPanel2;
+        public ComboBox cmbTypeRoi;
+        private Label label21;
+        private Label label22;
+        private ComboBox cmbFixture;
+        private CheckBox ckbDrawRoi;
+        private TableLayoutPanel tableLayoutPanel1;
+        private TableLayoutPanel tableLayoutPanel3;
+        private Label label14;
+        private ComboBox cmbImageEnhancement;
+        private Button button1;
+        private DataGridView dataGridView1;
+    }
+}
diff --git a/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.cs b/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.cs
new file mode 100644
index 0000000..0c04737
--- /dev/null
+++ b/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.cs
@@ -0,0 +1,20 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LB_VisionProcesses.Alogrithms.Halcon._2D.HEdgeExtractionTool
+{
+    public partial class HImageEnhancementToolEdit : UserControl
+    {
+        public HImageEnhancementToolEdit()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.resx b/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.resx
new file mode 100644
index 0000000..66dba7c
--- /dev/null
+++ b/LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.resx
@@ -0,0 +1,126 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!--
+    Microsoft ResX Schema
+
+    Version 2.0
+
+    The primary goals of this format is to allow a simple XML format
+    that is mostly human readable. The generation and parsing of the
+    various data types are done through the TypeConverter classes
+    associated with the data types.
+
+    Example:
+
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+
+    There are any number of "resheader" rows that contain simple
+    name/value pairs.
+
+    Each data row contains a name, and value. The row also contains a
+    type or mimetype. Type corresponds to a .NET class that support
+    text/value conversion through the TypeConverter architecture.
+    Classes that don't support this are serialized and stored with the
+    mimetype set.
+
+    The mimetype is used for serialized objects, and tells the
+    ResXResourceReader how to depersist the object. This is currently not
+    extensible. For a given mimetype the value must be set accordingly:
+
+    Note - application/x-microsoft.net.object.binary.base64 is the format
+    that the ResXResourceWriter will generate, however the reader can
+    read any of the formats listed below.
+
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="TopToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="BtmStatusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>174, 17</value>
+  </metadata>
+</root>
\ No newline at end of file

--
Gitblit v1.9.3