mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-19 10:32:19 +08:00
feat: change replace_full so it's set in tasks
previously in set_replace
This commit is contained in:
@@ -191,7 +191,7 @@ bool asst::BattleHelper::update_deployment(bool init, const cv::Mat& reusable)
|
||||
auto analyze = [&](OcrImageAnalyzer& name_analyzer) {
|
||||
name_analyzer.set_image(name_image);
|
||||
name_analyzer.set_task_info(oper_name_ocr_task_name());
|
||||
name_analyzer.set_replace(Task.get<OcrTaskInfo>("CharsNameOcrReplace")->replace_map, true);
|
||||
name_analyzer.set_replace(Task.get<OcrTaskInfo>("CharsNameOcrReplace")->replace_map);
|
||||
if (!name_analyzer.analyze()) {
|
||||
return std::string();
|
||||
}
|
||||
|
||||
@@ -275,7 +275,7 @@ bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig co
|
||||
const auto& ocr_replace = Task.get<OcrTaskInfo>("CharsNameOcrReplace")->replace_map;
|
||||
for (const auto& oper : oper_analyzer_res) {
|
||||
OcrWithPreprocessImageAnalyzer name_analyzer;
|
||||
name_analyzer.set_replace(ocr_replace, true);
|
||||
name_analyzer.set_replace(ocr_replace);
|
||||
name_analyzer.set_image(oper.name_img);
|
||||
name_analyzer.set_expansion(0);
|
||||
if (!name_analyzer.analyze()) {
|
||||
@@ -330,7 +330,7 @@ bool asst::InfrastAbstractTask::select_custom_opers(std::vector<std::string>& pa
|
||||
const auto& ocr_replace = Task.get<OcrTaskInfo>("CharsNameOcrReplace")->replace_map;
|
||||
for (const auto& oper : oper_analyzer.get_result()) {
|
||||
OcrWithPreprocessImageAnalyzer name_analyzer;
|
||||
name_analyzer.set_replace(ocr_replace, true);
|
||||
name_analyzer.set_replace(ocr_replace);
|
||||
name_analyzer.set_image(oper.name_img);
|
||||
name_analyzer.set_expansion(0);
|
||||
if (!name_analyzer.analyze()) {
|
||||
@@ -387,7 +387,7 @@ void asst::InfrastAbstractTask::order_opers_selection(const std::vector<std::str
|
||||
std::vector<TextRect> page_result;
|
||||
for (const auto& oper : oper_analyzer.get_result()) {
|
||||
OcrWithPreprocessImageAnalyzer name_analyzer;
|
||||
name_analyzer.set_replace(ocr_replace, true);
|
||||
name_analyzer.set_replace(ocr_replace);
|
||||
name_analyzer.set_image(oper.name_img);
|
||||
name_analyzer.set_expansion(0);
|
||||
if (!name_analyzer.analyze()) {
|
||||
|
||||
@@ -447,7 +447,7 @@ bool asst::InfrastProductionTask::optimal_calc()
|
||||
}
|
||||
else {
|
||||
OcrWithPreprocessImageAnalyzer name_analyzer(find_iter->name_img);
|
||||
name_analyzer.set_replace(Task.get<OcrTaskInfo>("CharsNameOcrReplace")->replace_map, true);
|
||||
name_analyzer.set_replace(Task.get<OcrTaskInfo>("CharsNameOcrReplace")->replace_map);
|
||||
Log.trace("Analyze name filter");
|
||||
if (!name_analyzer.analyze()) {
|
||||
continue;
|
||||
@@ -574,7 +574,7 @@ bool asst::InfrastProductionTask::opers_choose()
|
||||
}
|
||||
else {
|
||||
OcrWithPreprocessImageAnalyzer name_analyzer(lhs.name_img);
|
||||
name_analyzer.set_replace(Task.get<OcrTaskInfo>("CharsNameOcrReplace")->replace_map, true);
|
||||
name_analyzer.set_replace(Task.get<OcrTaskInfo>("CharsNameOcrReplace")->replace_map);
|
||||
Log.trace("Analyze name filter");
|
||||
if (!name_analyzer.analyze()) {
|
||||
return false;
|
||||
|
||||
@@ -133,12 +133,12 @@ std::vector<asst::TextRect> asst::BattleFormationTask::analyzer_opers()
|
||||
|
||||
OcrWithFlagTemplImageAnalyzer name_analyzer(image);
|
||||
name_analyzer.set_task_info("BattleQuickFormation-OperNameFlag", "BattleQuickFormationOCR");
|
||||
name_analyzer.set_replace(ocr_replace, true);
|
||||
name_analyzer.set_replace(ocr_replace);
|
||||
name_analyzer.analyze();
|
||||
|
||||
OcrWithFlagTemplImageAnalyzer special_focus_analyzer(image);
|
||||
special_focus_analyzer.set_task_info("BattleQuickFormation-OperNameFlag-SpecialFocus", "BattleQuickFormationOCR");
|
||||
special_focus_analyzer.set_replace(ocr_replace, true);
|
||||
special_focus_analyzer.set_replace(ocr_replace);
|
||||
special_focus_analyzer.analyze();
|
||||
|
||||
auto opers_result = name_analyzer.get_result();
|
||||
|
||||
@@ -109,10 +109,9 @@ void asst::OcrImageAnalyzer::set_required(std::vector<std::string> required) noe
|
||||
m_required = std::move(required);
|
||||
}
|
||||
|
||||
void asst::OcrImageAnalyzer::set_replace(std::unordered_map<std::string, std::string> replace, bool replace_full) noexcept
|
||||
void asst::OcrImageAnalyzer::set_replace(std::unordered_map<std::string, std::string> replace) noexcept
|
||||
{
|
||||
m_replace = std::move(replace);
|
||||
m_replace_full = replace_full;
|
||||
}
|
||||
|
||||
void asst::OcrImageAnalyzer::set_task_info(OcrTaskInfo task_info) noexcept
|
||||
|
||||
@@ -25,8 +25,7 @@ namespace asst
|
||||
virtual void sort_result_by_required(); // 按传入的需求数组排序,传入的在前面结果接在前面
|
||||
|
||||
void set_required(std::vector<std::string> required) noexcept;
|
||||
void set_replace(std::unordered_map<std::string, std::string> replace, bool replace_full = false) noexcept; // The whole string is replaced when replace_full is set to true,
|
||||
// while only the matched part is replaced when it is set to false
|
||||
void set_replace(std::unordered_map<std::string, std::string> replace) noexcept;
|
||||
|
||||
virtual void set_task_info(std::shared_ptr<TaskInfo> task_ptr);
|
||||
virtual void set_task_info(const std::string& task_name);
|
||||
|
||||
@@ -12,7 +12,7 @@ bool asst::RoguelikeRecruitImageAnalyzer::analyze()
|
||||
|
||||
OcrWithFlagTemplImageAnalyzer analyzer(m_image);
|
||||
analyzer.set_task_info("RoguelikeRecruitOcrFlag", "RoguelikeRecruitOcr");
|
||||
analyzer.set_replace(Task.get<OcrTaskInfo>("CharsNameOcrReplace")->replace_map, true);
|
||||
analyzer.set_replace(Task.get<OcrTaskInfo>("CharsNameOcrReplace")->replace_map);
|
||||
analyzer.set_threshold(Task.get("RoguelikeRecruitOcr")->specific_rect.x);
|
||||
|
||||
if (!analyzer.analyze()) {
|
||||
|
||||
@@ -54,7 +54,7 @@ std::string asst::RoguelikeSkillSelectionImageAnalyzer::name_analyze(const Rect&
|
||||
analyzer.set_task_info(name_task_ptr);
|
||||
analyzer.set_image(m_image);
|
||||
analyzer.set_roi(roi.move(name_task_ptr->roi));
|
||||
analyzer.set_replace(std::dynamic_pointer_cast<OcrTaskInfo>(Task.get("CharsNameOcrReplace"))->replace_map, true);
|
||||
analyzer.set_replace(std::dynamic_pointer_cast<OcrTaskInfo>(Task.get("CharsNameOcrReplace"))->replace_map);
|
||||
|
||||
if (!analyzer.analyze()) {
|
||||
return {};
|
||||
|
||||
Reference in New Issue
Block a user