From a018a8f54d97447d9924256c475ed54f0b67d3ea Mon Sep 17 00:00:00 2001 From: YZJ Date: Mon, 1 Jul 2024 11:39:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=97=AA=E7=83=81=EF=BC=8C?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E9=98=BB=E5=A1=9E=E9=97=AE=E9=A2=98=E6=9C=AA?= =?UTF-8?q?=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HisenceYoloDetection/CheckDiffSciHelper.cs | 81 ++++++++++++---------- HisenceYoloDetection/MainForm.cs | 16 +++++ HisenceYoloDetection/MainForm.resx | 2 +- 3 files changed, 62 insertions(+), 37 deletions(-) diff --git a/HisenceYoloDetection/CheckDiffSciHelper.cs b/HisenceYoloDetection/CheckDiffSciHelper.cs index 4811e43..580fc6a 100644 --- a/HisenceYoloDetection/CheckDiffSciHelper.cs +++ b/HisenceYoloDetection/CheckDiffSciHelper.cs @@ -6,6 +6,7 @@ using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; +using static System.Net.Mime.MediaTypeNames; using Point = OpenCvSharp.Point; using Size = OpenCvSharp.Size; @@ -98,14 +99,14 @@ namespace HisenceYoloDetection DateTime dt = DateTime.Now; string filename = dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString(); - string savePath4 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "_thr1.png"); - // 保存结果 + //string savePath4 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "_thr1.png"); + //// 保存结果 - Cv2.ImWrite(savePath4, thr1); - string savePath3 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "_thr2.png"); - // 保存结果 + //Cv2.ImWrite(savePath4, thr1); + //string savePath3 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "_thr2.png"); + //// 保存结果 - Cv2.ImWrite(savePath3, thr2); + //Cv2.ImWrite(savePath3, thr2); // 创建卷积核 Mat filter1 = new Mat(15, 15, MatType.CV_32F, new Scalar(0)); @@ -145,14 +146,14 @@ namespace HisenceYoloDetection Mat devIMG_ = new Mat(); Cv2.Subtract(final_result1, final_result2, devIMG); Cv2.Subtract(final_result2, final_result1, devIMG_); - string savePathd = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "devIMG.png"); - // 保存结果 + //string savePathd = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "devIMG.png"); + //// 保存结果 - Cv2.ImWrite(savePathd, devIMG); - string savePathd1 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "devIMG_.png"); - // 保存结果 + //Cv2.ImWrite(savePathd, devIMG); + //string savePathd1 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "devIMG_.png"); + //// 保存结果 - Cv2.ImWrite(savePathd1, devIMG_); + //Cv2.ImWrite(savePathd1, devIMG_); // 对差异图像应用阈值 Cv2.Threshold(devIMG, devIMG, 20, 255, ThresholdTypes.Binary); Cv2.Threshold(devIMG_, devIMG_, 20, 255, ThresholdTypes.Binary); @@ -176,24 +177,32 @@ namespace HisenceYoloDetection { Cv2.DrawContours(blackhatImg, new Point[][] { contour }, -1, Scalar.Black, thickness: Cv2.FILLED); // 框选轮廓 - + string savePath2 = Path.Combine("D:\\Hisence\\Test\\2\\ng", Path.GetFileNameWithoutExtension(path1) + filename + "_Rect.png"); + // 保存结果 + //string savePath = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path2) + "_diff.png"); + Cv2.ImWrite(savePath2, img2); + string savePath = Path.Combine("D:\\Hisence\\Test\\2\\ng", Path.GetFileNameWithoutExtension(path1) + filename + "_diff.png"); + // 保存结果 + //string savePath = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path2) + "_diff.png"); + Cv2.ImWrite(savePath, blackhatImg); } else { Rect boundingRect = Cv2.BoundingRect(contour); Cv2.Rectangle(img2, boundingRect, Scalar.Red, thickness: 2); isMatch = false; + string savePath2 = Path.Combine("D:\\Hisence\\Test\\2\\ok", Path.GetFileNameWithoutExtension(path1) + filename + "_Rect.png"); + // 保存结果 + //string savePath = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path2) + "_diff.png"); + Cv2.ImWrite(savePath2, img2); + string savePath = Path.Combine("D:\\Hisence\\Test\\2\\ok", Path.GetFileNameWithoutExtension(path1) + filename + "_diff.png"); + // 保存结果 + //string savePath = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path2) + "_diff.png"); + Cv2.ImWrite(savePath, blackhatImg); } } - string savePath2 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "_Rect.png"); - // 保存结果 - //string savePath = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path2) + "_diff.png"); - Cv2.ImWrite(savePath2, img2); - string savePath = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "_diff.png"); - // 保存结果 - //string savePath = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path2) + "_diff.png"); - Cv2.ImWrite(savePath, blackhatImg); + return isMatch; } @@ -315,14 +324,14 @@ namespace HisenceYoloDetection DateTime dt = DateTime.Now; string filename = dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString(); - string savePath4 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "_thr1.png"); - // 保存结果 + //string savePath4 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "_thr1.png"); + //// 保存结果 - Cv2.ImWrite(savePath4, thr1); - string savePath3 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "_thr2.png"); - // 保存结果 + //Cv2.ImWrite(savePath4, thr1); + //string savePath3 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "_thr2.png"); + //// 保存结果 - Cv2.ImWrite(savePath3, thr2); + //Cv2.ImWrite(savePath3, thr2); // 创建卷积核 @@ -368,14 +377,14 @@ namespace HisenceYoloDetection Mat devIMG_ = new Mat(); Cv2.Subtract(final_result1, final_result2, devIMG); Cv2.Subtract(final_result2, final_result1, devIMG_); - string savePathd = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "devIMG.png"); - // 保存结果 + //string savePathd = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "devIMG.png"); + //// 保存结果 - Cv2.ImWrite(savePathd, devIMG); - string savePathd1 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "devIMG_.png"); - // 保存结果 + //Cv2.ImWrite(savePathd, devIMG); + //string savePathd1 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "devIMG_.png"); + //// 保存结果 - Cv2.ImWrite(savePathd1, devIMG_); + //Cv2.ImWrite(savePathd1, devIMG_); // 对差异图像应用阈值 Cv2.Threshold(devIMG, devIMG, 45, 255, ThresholdTypes.Binary); Cv2.Threshold(devIMG_, devIMG_, 45, 255, ThresholdTypes.Binary); @@ -383,10 +392,10 @@ namespace HisenceYoloDetection // 结合差异 Mat sumIMG = new Mat(); Cv2.Add(devIMG, devIMG_, sumIMG); - string savePaths = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "sumIMG.png"); - // 保存结果 + //string savePaths = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "sumIMG.png"); + //// 保存结果 - Cv2.ImWrite(savePaths, sumIMG); + //Cv2.ImWrite(savePaths, sumIMG); // 应用形态学操作 Mat kernelCL = Cv2.GetStructuringElement(MorphShapes.Rect, new Size(3, 3)); Mat blackhatImg = new Mat(); diff --git a/HisenceYoloDetection/MainForm.cs b/HisenceYoloDetection/MainForm.cs index bd6ea61..876542f 100644 --- a/HisenceYoloDetection/MainForm.cs +++ b/HisenceYoloDetection/MainForm.cs @@ -277,6 +277,7 @@ namespace HisenceYoloDetection } public void Execute(object source, System.Timers.ElapsedEventArgs e) { + t.Stop(); //ȹرնʱ //melsecPLCTCPDriver.WriteInt("548", 1); //Thread.Sleep(1000); @@ -524,6 +525,7 @@ namespace HisenceYoloDetection // tbFrameRate.Enabled = false; bnGetParam.Enabled = false; bnSetParam.Enabled = false; + } private void button3_Click(object sender, EventArgs e) { @@ -1449,6 +1451,12 @@ namespace HisenceYoloDetection ResultMatShow.Image = mL.ResultMap; } + else + { + Mat res_yolo = Cv2.ImRead("ng.jpg"); + + ResultMatShow.Image = res_yolo.ToBitmap(); + }//޷򶨵ͼƬ˸else޷ // MLRequest req2 = new MLRequest(); req2.currentMat = Cam1ImgTwo; @@ -2811,6 +2819,7 @@ namespace HisenceYoloDetection string blockIndex = cam1TwoML.ResultDetails[i].LabelDisplay; Rect area = new Rect(rectsx, rectsy, rectsWidth, rectsHeight); Mat matCut = new Mat(mResultCuti, area); + Stopwatch sw = new Stopwatch(); sw.Start(); //OCRʶüͼƬ @@ -2892,6 +2901,7 @@ namespace HisenceYoloDetection string TextWoidStr = OcrFuzzyTextInsert.Join("##"); //ʵʵļ string SQLStr = "";//־ʾݿĹؼ bool juanjiMatch = false; + string filenameone = dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString(); switch (blockIndex) { case "1"://ȫƥ Ϣ @@ -2913,11 +2923,17 @@ namespace HisenceYoloDetection //ʾİ DisplayResult(mLcut); Defet_OnDetectionDone(mLcut.ResultMap.ToMat(), 1); + + string Path_1 = Path.Combine("D:\\Hisence\\Test\\1\\ng", filenameone + "_res.png"); + Cv2.ImWrite(Path_1, mLcut.ResultMap.ToMat()); + } else { OneIF = true; Defet_OnDetectionDone(OKMat, 1); + string Path_2 = Path.Combine("D:\\Hisence\\Test\\1\\ok", filenameone + "_res.png"); + Cv2.ImWrite(Path_2, OKMat); } } diff --git a/HisenceYoloDetection/MainForm.resx b/HisenceYoloDetection/MainForm.resx index 72c614f..62ad5ac 100644 --- a/HisenceYoloDetection/MainForm.resx +++ b/HisenceYoloDetection/MainForm.resx @@ -142,7 +142,7 @@ 733, 17 - 34 + 25