mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-15 17:30:27 +08:00
feat: HSVCount 的例子
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user