From cfa3fedb0c24e66d511dea76d0e9132eccccd871 Mon Sep 17 00:00:00 2001 From: status102 <102887808+status102@users.noreply.github.com> Date: Sun, 3 May 2026 11:13:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20correct=5Frect=E5=9C=A8rect=E8=B4=9F?= =?UTF-8?q?=E6=96=B9=E5=90=91=E5=AE=8C=E5=85=A8=E8=B6=8A=E7=95=8C=E6=97=B6?= =?UTF-8?q?=E4=BE=9D=E6=97=A7=E8=BE=93=E5=87=BA=E9=9D=9E0=E5=AE=BD?= =?UTF-8?q?=E5=BA=A6=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Vision/VisionHelper.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/MaaCore/Vision/VisionHelper.cpp b/src/MaaCore/Vision/VisionHelper.cpp index 61e605cc60..ac4de8b8d9 100644 --- a/src/MaaCore/Vision/VisionHelper.cpp +++ b/src/MaaCore/Vision/VisionHelper.cpp @@ -106,8 +106,13 @@ Rect VisionHelper::correct_rect(const Rect& rect, const cv::Mat& image) } res.x = std::clamp(res.x, 0, image.cols - 1); res.y = std::clamp(res.y, 0, image.rows - 1); - res.width = std::clamp(res.width, 1, image.cols - res.x); - res.height = std::clamp(res.height, 1, image.rows - res.y); + res.width = std::clamp(res.width, 0, image.cols - res.x); + res.height = std::clamp(res.height, 0, image.rows - res.y); + + if (res.empty()) { + Log.warn(__FUNCTION__, "roi is empty after correction"); + return { 1, 1, 0, 0 }; // 临时修复, 后续需调整默认rect的行为 + } if (res != rect) { Log.warn(__FUNCTION__, "roi is out of range", image.cols, image.rows, rect.to_string(), "clamped");