feat: HSVCount 的例子

This commit is contained in:
zzyyyl
2024-07-20 20:29:58 +08:00
parent 1c116be819
commit f1cf3d0710
2 changed files with 59 additions and 11 deletions

View File

@@ -9957,6 +9957,13 @@
},
"Sarkaz@Roguelike@StageBoskyPassageEnter": {
"baseTask": "Sarkaz@Roguelike@StageEnter",
"method": "HSVCount",
"maskRange": [
[
[137, 150, 40],
[138, 180, 180]
]
],
"next": [
"Sarkaz@Roguelike@StageBoskyPassageEnter",
"Sarkaz@Roguelike@StageEncounterJudgeClick"
@@ -10007,7 +10014,15 @@
"Sarkaz@Roguelike@Stages#next"
]
},
"Sarkaz@Roguelike@StageCombatDpsEnter": {},
"Sarkaz@Roguelike@StageCombatDpsEnter": {
"method": "HSVCount",
"maskRange": [
[
[130, 130, 40],
[131, 180, 180]
]
]
},
"Sarkaz@Roguelike@StageConfrontation": {
"Doc": "狭路相逢",
"baseTask": "Sarkaz@Roguelike@Stage",
@@ -10255,6 +10270,13 @@
]
},
"Sarkaz@Roguelike@StageSafeHouseEnter": {
"method": "HSVCount",
"maskRange": [
[
[106, 100, 50],
[107, 160, 180]
]
],
"next": [
"Sarkaz@Roguelike@StageSafeHouseEnter",
"Sarkaz@Roguelike@StageEncounterJudgeClick"

View File

@@ -17,7 +17,7 @@ asst::DebugTask::DebugTask(const AsstCallback& callback, Assistant* inst) : Inte
bool asst::DebugTask::run()
{
test_drops();
test_match_template();
return true;
}
@@ -79,14 +79,40 @@ void asst::DebugTask::test_match_template()
cv::Mat image = asst::imread(utils::path("../../test/match_template/1.png"));
cv::Mat resized;
cv::resize(image, resized, cv::Size(1280, 720), 0, 0, cv::INTER_AREA);
Matcher match_analyzer(resized, Rect(0, 0, 1280, 720));
const auto& task_ptr = Task.get("Sami@Roguelike@StageEncounterOptionLeave");
const auto match_task_ptr = std::dynamic_pointer_cast<MatchTaskInfo>(task_ptr);
match_analyzer.set_task_info(match_task_ptr);
match_analyzer.analyze();
const auto& result_opt = match_analyzer.analyze();
if (result_opt) {
const auto& result = result_opt.value().to_string();
Log.info(__FUNCTION__, result);
{
Matcher match_analyzer(resized, Rect(0, 0, 1280, 720));
const auto& task_ptr = Task.get("Sarkaz@Roguelike@StageSafeHouseEnter");
const auto match_task_ptr = std::dynamic_pointer_cast<MatchTaskInfo>(task_ptr);
match_analyzer.set_task_info(match_task_ptr);
const auto& result_opt = match_analyzer.analyze();
if (result_opt) {
const auto& result = result_opt.value().to_string();
Log.info(__FUNCTION__, result);
}
}
{
Matcher match_analyzer(resized, Rect(0, 0, 1280, 720));
const auto& task_ptr = Task.get("Sarkaz@Roguelike@StageBoskyPassageEnter");
const auto match_task_ptr = std::dynamic_pointer_cast<MatchTaskInfo>(task_ptr);
match_analyzer.set_task_info(match_task_ptr);
const auto& result_opt = match_analyzer.analyze();
if (result_opt) {
const auto& result = result_opt.value().to_string();
Log.info(__FUNCTION__, result);
}
}
{
Matcher match_analyzer(resized, Rect(0, 0, 1280, 720));
const auto& task_ptr = Task.get("Sarkaz@Roguelike@StageCombatDpsEnter");
const auto match_task_ptr = std::dynamic_pointer_cast<MatchTaskInfo>(task_ptr);
match_analyzer.set_task_info(match_task_ptr);
const auto& result_opt = match_analyzer.analyze();
if (result_opt) {
const auto& result = result_opt.value().to_string();
Log.info(__FUNCTION__, result);
}
}
}