From b7e026ea197e82d7ac1aac08fdc4acf183e29455 Mon Sep 17 00:00:00 2001 From: Horror Proton <107091537+horror-proton@users.noreply.github.com> Date: Fri, 24 Mar 2023 19:51:40 +0800 Subject: [PATCH] fix: improve post processing in depot item quantity match fix #4057 --- src/MaaCore/Vision/Miscellaneous/DepotImageAnalyzer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/MaaCore/Vision/Miscellaneous/DepotImageAnalyzer.cpp b/src/MaaCore/Vision/Miscellaneous/DepotImageAnalyzer.cpp index 065e511cd8..53b66fdf0d 100644 --- a/src/MaaCore/Vision/Miscellaneous/DepotImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Miscellaneous/DepotImageAnalyzer.cpp @@ -241,9 +241,13 @@ int asst::DepotImageAnalyzer::match_quantity(const ItemInfo& item) auto mask_rect = cv::boundingRect(mask); mask_rect.width -= 1; mask_rect.height -= 1; + if (mask_rect.height < 18) mask_rect.height = 18; + const auto mid_x = mask.cols / 2; // center of image + if (mask_rect.br().x - mid_x < 30) mask_rect.width = mid_x + 30 - mask_rect.x; + // minus 1 to trim white pixels - Rect ocr_roi { item.rect.x + mask_rect.x, item.rect.y + mask_rect.y, mask_rect.width, mask_rect.height }; + Rect ocr_roi { item.rect.x + mask_rect.x, item.rect.y + mask_rect.y, mask_rect.width - 1, mask_rect.height - 1 }; cv::Mat ocr_img = m_image_resized.clone(); cv::subtract(m_image_resized(make_rect(item.rect)), item_templ * 0.41,