From 8cbf4a6b9f334246d88c8101ae3db9a21f1bab3f Mon Sep 17 00:00:00 2001
From: patrick.xu <patrick.xu@broconcentric.com>
Date: 星期三, 28 四月 2021 11:40:08 +0800
Subject: [PATCH] Merge branch 'master' of http://gitblit.broconcentric.com:8088/r/M071

---
 src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs |   64 +++++++++++++++++++++++++++++++-
 1 files changed, 62 insertions(+), 2 deletions(-)

diff --git a/src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs b/src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs
index f1f385d..7fc9b36 100644
--- a/src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs
+++ b/src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs
@@ -136,9 +136,15 @@
             catch (HDevEngineException ex)
             {
                 IsSuccessful = false;
+                errorMsg = $"HDevProgram {ex.ProcedureName} Run fail , Line number: {ex.LineNumber}, Halcon error number : {ex.HalconError},ex:{ex.Message}";
+                return false;
+            }
+            catch (Exception ex)
+            {
+                IsSuccessful = false;
                 //Trace.TraceInformation("HDevProgram {0} Run fail , Line number: {1}, Halcon error number : {2},ex:{3}", ex.ProcedureName, ex.LineNumber, ex.HalconError, ex.Message);
                 //return;
-                errorMsg = $"HDevProgram {ex.ProcedureName} Run fail , Line number: {ex.LineNumber}, Halcon error number : {ex.HalconError},ex:{ex.Message}";
+                errorMsg = $"{ex.Message}";
                 return false;
             }
         }
@@ -208,7 +214,7 @@
             }
         }
 
-        public static Bitmap ConvertHImgaeToBitmap(this HImage hImage)
+        public static Bitmap ConvertHImageToBitmap(this HImage hImage)
         {
             try
             {
@@ -266,5 +272,59 @@
 
             return img;
         }
+
+        public static Bitmap ConvertHImageTo16GrayBitmap(this HImage originHImage)
+        {
+            HImage hImage = originHImage.Clone();
+
+            //get_domain(Image, rectangle)
+            //* 鑾峰彇鍏ㄥ浘涓儚绱犵伆搴﹀�肩殑鏈�澶у拰鏈�灏忓��
+            //min_max_gray(rectangle, Image, 0, Min, Max, range)
+            hImage.MinMaxGray(hImage.GetDomain(), 0, out double min, out double max, out double range);
+
+            //* 灏�16浣嶅浘鐨勭伆搴﹀�兼槧灏勫埌0 - 255涓�
+            double mult = 255.0 / (max - min);
+            double add = -mult * min;
+            hImage = hImage.ScaleImage(mult, add);
+
+            //* 杞崲涓�'byte'绫诲瀷
+            //convert_image_type(Image_scaled, ImageConverted, 'byte')
+            hImage = hImage.ConvertImageType("byte");
+
+            Bitmap showImage = hImage.ConvertHImageToBitmap();
+
+            hImage.Dispose();
+
+            return showImage;
+        }
+
+        public static Bitmap ConvertSignedHImageTo16GrayBitmap(this HImage originHImage)
+        {
+            HImage hImage = originHImage.Clone();
+
+            hImage = hImage.ConvertImageType("int4");
+            hImage = hImage.ScaleImage(1.0, 32768);
+            hImage = hImage.ConvertImageType("uint2");
+
+            //get_domain(Image, rectangle)
+            //* 鑾峰彇鍏ㄥ浘涓儚绱犵伆搴﹀�肩殑鏈�澶у拰鏈�灏忓��
+            //min_max_gray(rectangle, Image, 0, Min, Max, range)
+            hImage.MinMaxGray(hImage.GetDomain(), 0, out double min, out double max, out double range);
+
+            //* 灏�16浣嶅浘鐨勭伆搴﹀�兼槧灏勫埌0 - 255涓�
+            double mult = 255.0 / (max - min);
+            double add = -mult * min;
+            hImage = hImage.ScaleImage(mult, add);
+
+            //* 杞崲涓�'byte'绫诲瀷
+            //convert_image_type(Image_scaled, ImageConverted, 'byte')
+            hImage = hImage.ConvertImageType("byte");
+
+            Bitmap showImage = hImage.ConvertHImageToBitmap();
+
+            hImage.Dispose();
+
+            return showImage;
+        }
     }
 }

--
Gitblit v1.8.0