From 5d92931141fb218dc56925693e1736d44aaae44f Mon Sep 17 00:00:00 2001 From: liusiyang Date: Wed, 7 Oct 2026 21:25:00 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=8E=9F=E5=9B=BE=E4=B9=9F=E4=B8=8D?= =?UTF-8?q?=E6=94=B9=E5=8F=98=E9=80=9A=E9=81=93=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=86=85=E5=AE=9A=E4=BD=8D=E7=BB=98=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AlgorithmModule/src/AI_Edge_Algin.cpp | 9 +++++++++ AlgorithmModule/src/ImgCheckAnalysisy.cpp | 15 ++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/AlgorithmModule/src/AI_Edge_Algin.cpp b/AlgorithmModule/src/AI_Edge_Algin.cpp index 52375e4..df10acb 100644 --- a/AlgorithmModule/src/AI_Edge_Algin.cpp +++ b/AlgorithmModule/src/AI_Edge_Algin.cpp @@ -258,6 +258,15 @@ int AI_Edge_Algin::Detect(const cv::Mat &img, DetConfig *pDetConfig, std::shared return re; } + // Get_Edge 返回的是其输入图坐标系下的 roi;内定位在 Big_roi 裁剪图上执行, + // 这里把裁剪偏移加回,保证 smallroi 与 bigroi 同为原图坐标系 + // (下游内外中心偏移对比、模板对齐仿射变换和结果图绘制都依赖该坐标系) + { + cv::Rect bigRect = Big_roi.boundingRect(); + Small_roi.center.x += static_cast(bigRect.x); + Small_roi.center.y += static_cast(bigRect.y); + } + m_pCheckResult_Aling->bigroi = Big_roi; m_pCheckResult_Aling->smallroi = Small_roi; diff --git a/AlgorithmModule/src/ImgCheckAnalysisy.cpp b/AlgorithmModule/src/ImgCheckAnalysisy.cpp index 8f3f54c..53fd921 100644 --- a/AlgorithmModule/src/ImgCheckAnalysisy.cpp +++ b/AlgorithmModule/src/ImgCheckAnalysisy.cpp @@ -2320,7 +2320,20 @@ int ImgCheckAnalysisy::ImgPreDet() creatsavedir(); } - m_CheckResult_shareP->cutSrcimg = m_pImageAllResult->detImg; + // _RE_CutImg 裁剪图保持传图原图通道(彩色原图 -> 彩色裁剪图),不再直接使用灰度检测图; + // ReJson 复测模式的输入本身就是裁剪图,以及 ROI 越界等异常情况,退回检测图 + { + const cv::Mat &srcImg = m_CheckResult_shareP->in_shareImage->img; + if (m_CheckResult_shareP->in_shareImage->Det_Mode != DET_MODE_ReJson && + !srcImg.empty() && CheckUtil::RoiInImg(m_outer_roi, srcImg)) + { + m_CheckResult_shareP->cutSrcimg = srcImg(m_outer_roi).clone(); + } + else + { + m_CheckResult_shareP->cutSrcimg = m_pImageAllResult->detImg; + } + } ResizeImg(); m_pImageAllResult->fscale_detToresult_x = m_pImageAllResult->resultImg.cols * 1.0f / m_pImageAllResult->detImg.cols;