fix: 自动战斗击杀数识别错误 (#15266)

This commit is contained in:
Status102
2026-01-01 23:22:54 +08:00
committed by GitHub
6 changed files with 8 additions and 5 deletions

View File

@@ -3892,12 +3892,14 @@
"isAscii": true,
"text": [],
"roi": [50, 0, 100, 40],
"useRaw": false,
"specialParams_doc": "Kill区域变化阈值, 模板匹配, 100=1.0; 正常在 0.997-1 之间波动, 少有0.995; _5->_6 的分数最高, 可达0.94",
"specialParams": [98]
},
"BattleCostData": {
"baseTask": "NumberOcrReplace",
"roi": [1199, 494, 80, 44],
"useRaw": false,
"specialParams_doc": "Cost数字变化阈值, 模板匹配, 100=1.0; 正常在 0.997-1 之间波动, 少有0.995; _5->_6 的分数最高, 0.85上下",
"specialParams": [98]
},

View File

@@ -279,7 +279,6 @@ BattlefieldMatcher::MatchResult<std::pair<int, int>> BattlefieldMatcher::kills_a
TemplDetOCRer kills_analyzer(m_image);
kills_analyzer.set_task_info("BattleKillsFlag", "BattleKills");
kills_analyzer.set_replace(Task.get<OcrTaskInfo>("NumberOcrReplace")->replace_map);
kills_analyzer.set_ocr_use_raw(true);
auto kills_opt = kills_analyzer.analyze();
if (!kills_opt) {
return {};

View File

@@ -74,6 +74,11 @@ void OCRerConfig::set_use_char_model(bool enable) noexcept
m_params.use_char_model = enable;
}
void asst::OCRerConfig::set_use_raw(bool value) noexcept
{
m_params.use_raw = value;
}
void OCRerConfig::set_bin_threshold(int lower, int upper)
{
m_params.bin_threshold_lower = lower;

View File

@@ -43,6 +43,7 @@ public:
void set_without_det(bool without_det) noexcept;
void set_use_char_model(bool enable) noexcept;
void set_use_raw(bool value) noexcept;
void set_bin_threshold(int lower, int upper = 255);
void set_bin_expansion(int expansion);

View File

@@ -23,7 +23,6 @@ TemplDetOCRer::ResultsVecOpt TemplDetOCRer::analyze() const
RegionOCRer ocr_analyzer(m_image, roi);
ocr_analyzer.set_params(OCRerConfig::m_params);
ocr_analyzer.set_use_raw(m_use_raw);
auto ocr_opt = ocr_analyzer.analyze();
if (!ocr_opt) {
continue;

View File

@@ -33,8 +33,6 @@ public:
void set_task_info(const std::string& templ_task_name, const std::string& ocr_task_name);
void set_flag_rect_move(Rect flag_rect_move);
void set_ocr_use_raw(bool use_raw) { m_use_raw = use_raw; }
ResultsVecOpt analyze() const;
// FIXME: 老接口太难重构了,先弄个这玩意兼容下,后续慢慢全删掉
@@ -51,7 +49,6 @@ protected:
private:
Rect m_flag_rect_move;
bool m_use_raw = true;
private:
// FIXME: 老接口太难重构了,先弄个这玩意兼容下,后续慢慢全删掉