diff --git a/AlgorithmModule/src/CameraCheckAnalysisy.cpp b/AlgorithmModule/src/CameraCheckAnalysisy.cpp index e271108..0ffc870 100644 --- a/AlgorithmModule/src/CameraCheckAnalysisy.cpp +++ b/AlgorithmModule/src/CameraCheckAnalysisy.cpp @@ -194,13 +194,18 @@ int CameraCheckAnalysisy::Detect_Pre() if (shiftLeft < 0) { - cv::Mat M = (cv::Mat_(2, 3) << 1, 0, 0, 0, 1, (double)shiftLeft); - cv::warpAffine(img, img, M, img.size(), cv::INTER_NEAREST, cv::BORDER_CONSTANT, cv::Scalar(0)); + // 内容向上平移 |shiftLeft| 行,底部补黑。 + int dy = -shiftLeft; + cv::Mat shifted = cv::Mat::zeros(img.size(), img.type()); + img(cv::Rect(0, dy, img.cols, img.rows - dy)).copyTo(shifted(cv::Rect(0, 0, img.cols, img.rows - dy))); + img = shifted; } if (shiftRight < 0) { - cv::Mat M = (cv::Mat_(2, 3) << 1, 0, 0, 0, 1, (double)shiftRight); - cv::warpAffine(img_B, img_B, M, img_B.size(), cv::INTER_NEAREST, cv::BORDER_CONSTANT, cv::Scalar(0)); + int dy = -shiftRight; + cv::Mat shifted = cv::Mat::zeros(img_B.size(), img_B.type()); + img_B(cv::Rect(0, dy, img_B.cols, img_B.rows - dy)).copyTo(shifted(cv::Rect(0, 0, img_B.cols, img_B.rows - dy))); + img_B = shifted; } } else @@ -208,8 +213,16 @@ int CameraCheckAnalysisy::Detect_Pre() m_pdetlog->AddCheckstr(PrintLevel_1, "Detect_Pre", "Cam %s ==================GetProductFirstRow fail, skip align", strBasic.c_str()); } } + int overlap; + if(pImageResult->result->in_shareImage->strCameraName.find("TA") != std::string::npos) + { + overlap = 1056; + } + else + { + overlap = 1440; + } - const int overlap = 1056; if (img.cols <= overlap) { m_pdetlog->AddCheckstr(PrintLevel_1, "Detect_Pre", "Cam %s ==================img.cols <= overlap %d ", strBasic.c_str(), overlap); diff --git a/AlgorithmModule/src/ImageResultJudge.cpp b/AlgorithmModule/src/ImageResultJudge.cpp index b4db803..999aaf6 100644 --- a/AlgorithmModule/src/ImageResultJudge.cpp +++ b/AlgorithmModule/src/ImageResultJudge.cpp @@ -784,6 +784,11 @@ int ImageResultJudge::DrawResult(std::shared_ptr pImageResult) std::string text = buffer; draw_str->strlist.push_back(text); } + { + sprintf(buffer, " xy:%0.3f %0.3f mm", pqx->x_mm, pqx->y_mm); + std::string text = buffer; + draw_str->strlist.push_back(text); + } { sprintf(buffer, " len %0.2f A: %0.2f ", pqx->len, pqx->area); std::string text = buffer;