From 8701839e582eccd6b0e9d13fe0185904986deacb Mon Sep 17 00:00:00 2001 From: liusiyang Date: Mon, 26 Oct 2026 11:04:23 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=94=AF=E6=9E=B6=E8=BE=B9=E7=BC=98?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E7=81=B0=E5=BA=A6=E5=8D=A1=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AlgorithmModule/src/ImgCheckAnalysisy.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/AlgorithmModule/src/ImgCheckAnalysisy.cpp b/AlgorithmModule/src/ImgCheckAnalysisy.cpp index 4974d72..3dae6e4 100644 --- a/AlgorithmModule/src/ImgCheckAnalysisy.cpp +++ b/AlgorithmModule/src/ImgCheckAnalysisy.cpp @@ -82,7 +82,7 @@ // 即使拟合到凸起外边缘也不影响方向角 #define SUPPORT_REFINE_SEGMENTS_DEFAULT 6 // 搜索列带内相邻像素(3 行灰度均值)的灰度差小于该值视为无边缘(极性无关,支架比外侧亮/暗均可) -#define SUPPORT_REFINE_MIN_CONTRAST 15.0 +#define SUPPORT_REFINE_MIN_CONTRAST 45.0 // ===== 稳健直线拟合(FitLineRobustTV)的偏离点剔除参数 ===== // FIT_LINE_MAD_SIGMA:MAD 倍数阈值。调大→保留更多采样点(噪声大时更稳,但离群点可能残留、直线被轻微拉偏); @@ -1904,21 +1904,19 @@ int ImgCheckAnalysisy::CheckRun() // 外侧 -> 内侧逐像素扫,取灰度梯度最大的位置作为该行支架边缘点 int nEdge = -1; - float fBestGrad = 0.0f; for (int x = nX0; (nStepX > 0) ? (x + nStepX <= nX1) : (x + nStepX >= nX1); x += nStepX) { if (x < 1 || x + nStepX < 1 || x >= grayRef.cols - 1 || x + nStepX >= grayRef.cols - 1) { continue; } - const float fGrad = fabs(gray3(nYDet, x + nStepX) - gray3(nYDet, x)); - if (fGrad > fBestGrad) + const float fGrad = gray3(nYDet, x); + if (fGrad > (float)SUPPORT_REFINE_MIN_CONTRAST) { - fBestGrad = fGrad; nEdge = x; } } - if (nEdge < 0 || fBestGrad < (float)SUPPORT_REFINE_MIN_CONTRAST) + if (nEdge < 0) { continue; // 该行列带内没有明显灰度阶跃,本行不参与拟合 }