| 619 | } |
| 620 | |
| 621 | bool PipelineParser::parse_ocrer_param( |
| 622 | const json::value& input, |
| 623 | MAA_VISION_NS::OCRerParam& output, |
| 624 | const MAA_VISION_NS::OCRerParam& default_value) |
| 625 | { |
| 626 | if (!parse_roi_target(input, output.roi_target, default_value.roi_target)) { |
| 627 | LogError << "failed to parse_roi_target" << VAR(input); |
| 628 | return false; |
| 629 | } |
| 630 | |
| 631 | if (!parse_order_of_result( |
| 632 | input, |
| 633 | output.order_by, |
| 634 | output.result_index, |
| 635 | default_value.order_by, |
| 636 | default_value.result_index, |
| 637 | { |
| 638 | MAA_VISION_NS::ResultOrderBy::Horizontal, |
| 639 | MAA_VISION_NS::ResultOrderBy::Vertical, |
| 640 | MAA_VISION_NS::ResultOrderBy::Area, |
| 641 | MAA_VISION_NS::ResultOrderBy::Length, |
| 642 | MAA_VISION_NS::ResultOrderBy::Random, |
| 643 | MAA_VISION_NS::ResultOrderBy::Expected, |
| 644 | })) { |
| 645 | LogError << "failed to parse_order_of_result" << VAR(input); |
| 646 | return false; |
| 647 | } |
| 648 | |
| 649 | if (!get_and_check_value(input, "model", output.model, default_value.model)) { |
| 650 | LogError << "failed to get_and_check_value model" << VAR(input); |
| 651 | return false; |
| 652 | } |
| 653 | |
| 654 | if (!get_and_check_value(input, "only_rec", output.only_rec, default_value.only_rec)) { |
| 655 | LogError << "failed to get_and_check_value only_rec" << VAR(input); |
| 656 | return false; |
| 657 | } |
| 658 | |
| 659 | std::vector<std::string> u8_text; |
| 660 | std::vector<std::string> u8_default_text; |
| 661 | std::ranges::transform(default_value.expected, std::back_inserter(u8_default_text), from_u16); |
| 662 | |
| 663 | if (input.exists("expected")) { |
| 664 | if (!get_and_check_value_or_array(input, "expected", u8_text, u8_default_text)) { |
| 665 | LogError << "failed to get_and_check_value_or_array expected" << VAR(input); |
| 666 | return false; |
| 667 | } |
| 668 | } |
| 669 | // 已废弃字段,兼容一下 |
| 670 | else if (input.exists("text")) { |
| 671 | if (!get_and_check_value_or_array(input, "text", u8_text, u8_default_text)) { |
| 672 | LogError << "failed to get_and_check_value_or_array text" << VAR(input); |
| 673 | return false; |
| 674 | } |
| 675 | } |
| 676 | else { |
| 677 | u8_text = u8_default_text; |
| 678 | } |
nothing calls this directly
no test coverage detected