From e491716734714bd319d0875110c68942f25bbc88 Mon Sep 17 00:00:00 2001 From: Horror Proton <107091537+horror-proton@users.noreply.github.com> Date: Fri, 25 Nov 2022 22:56:58 +0800 Subject: [PATCH] fix: fix roi out of range --- src/MeoAssistant/Task/Miscellaneous/BattleProcessTask.cpp | 3 ++- src/MeoAssistant/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/MeoAssistant/Task/Miscellaneous/BattleProcessTask.cpp b/src/MeoAssistant/Task/Miscellaneous/BattleProcessTask.cpp index b8bb34e711..ce1352b800 100644 --- a/src/MeoAssistant/Task/Miscellaneous/BattleProcessTask.cpp +++ b/src/MeoAssistant/Task/Miscellaneous/BattleProcessTask.cpp @@ -657,7 +657,8 @@ bool asst::BattleProcessTask::try_possible_skill(const cv::Mat& image) if (info.info.skill_usage != BattleSkillUsage::Possibly && info.info.skill_usage != BattleSkillUsage::Once) { continue; } - const auto roi = make_rect(Rect { info.pos.x, info.pos.y, 0, 0 }.move(skill_roi_move)); + auto roi = make_rect(Rect { info.pos.x, info.pos.y, 0, 0 }.move(skill_roi_move)); + roi &= cv::Rect(0, 0, image.cols, image.rows); const auto result = find_skill_ready(image(roi), temp); if (result.empty()) continue; diff --git a/src/MeoAssistant/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp b/src/MeoAssistant/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp index 7970df250c..bb62d83bf6 100644 --- a/src/MeoAssistant/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp +++ b/src/MeoAssistant/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp @@ -917,7 +917,8 @@ bool asst::RoguelikeBattleTaskPlugin::try_possible_skill(const cv::Mat& image) } const Point pos = m_normal_tile_info.at(loc).pos; const Rect pos_rect(pos.x, pos.y, 1, 1); - const auto roi = make_rect(pos_rect.move(skill_roi_move)); + auto roi = make_rect(pos_rect.move(skill_roi_move)); + roi &= cv::Rect(0, 0, image.cols, image.rows); auto result = find_skill_ready(image(roi), temp); if (result.empty()) continue;