From a569f6895e7ea624b869609a41ad4e39ea0f041a Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 22 八月 2025 11:12:01 +0800
Subject: [PATCH] 1. NI添加计算Notch周长

---
 EdgeInspector_App/Process/InspectCamera.cpp |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/EdgeInspector_App/Process/InspectCamera.cpp b/EdgeInspector_App/Process/InspectCamera.cpp
index bd15068..afa2e45 100644
--- a/EdgeInspector_App/Process/InspectCamera.cpp
+++ b/EdgeInspector_App/Process/InspectCamera.cpp
@@ -4443,6 +4443,21 @@
 	strTemp.Format(_T("Notch\\Notch_%d_Defect_ProcBinImage"), nNotchIdx);
 	SaveDebugImage(emDim, stFrame, pProcBinImage, strTemp);
 
+	CvSeq* pContours = nullptr;
+	CvMemStorage* pStorage = cvCreateMemStorage(0);
+	cvFindContours(pProcBinImage, pStorage, &pContours, sizeof(CvContour), CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
+	for (CvSeq* c = pContours; c != nullptr; c = c->h_next) {
+		double dLength = cvArcLength(c);
+		if (dLength < 2000) {
+			continue;
+		}
+
+		if (std::abs(dLength - 7000) > 1000) {
+			g_pLog->DisplayMessage(_T("[WARN] Notch defect contour length deviates significantly from expected: %f"), dLength);
+			break;
+		}
+	}
+
 #if	MINI_LED == 0
 	// 鎺橀健韴囬優電撮憭锛岆牆宀弘矔雽曤彅閳措船鐝傡儉旖旊嫺鐙傜棛
 	int nDilateCount = pNotchParam->m_nNotch_Inspect_Defect_dilate;

--
Gitblit v1.9.3