完成进入指定序号宿舍的接口

This commit is contained in:
MistEO
2021-09-05 02:31:34 +08:00
parent e9f52f9bed
commit 1340bbfd58
8 changed files with 50 additions and 27 deletions

View File

@@ -23,15 +23,16 @@ bool asst::InfrastDormTask::run()
return false;
}
enter_upper_dorm();
enter_dorm(2);
return true;
}
bool asst::InfrastDormTask::enter_upper_dorm()
bool asst::InfrastDormTask::enter_dorm(int index)
{
cv::Mat image = get_format_image();
// 普通的和mini的正常情况应该只有一个有结果另一个是empty
// 为了防止识别漏了,这里阈值先放低一点
auto dorm_result = m_identify_ptr->find_all_images(image, "Dorm", 0.8);
auto dorm_mini_result = m_identify_ptr->find_all_images(image, "DormMini", 0.8);
@@ -46,16 +47,16 @@ bool asst::InfrastDormTask::enter_upper_dorm()
else if (dorm_mini_result.empty()) {
cur_dorm_result = std::move(dorm_result);
}
// 最顶上的宿舍(第一个宿舍)
auto upper_iter = std::min_element(cur_dorm_result.cbegin(), cur_dorm_result.cend(), [](
if (index >= cur_dorm_result.size()) {
return false;
}
std::sort(cur_dorm_result.begin(), cur_dorm_result.end(), [](
const auto& lhs, const auto& rhs) -> bool {
return lhs.rect.y < rhs.rect.y;
});
if (upper_iter == cur_dorm_result.cend()) {
// 按理说走不到这里TODO 报错
return false;
}
m_control_ptr->click(upper_iter->rect);
m_control_ptr->click(cur_dorm_result.at(index).rect);
return false;
}