Skip to content

Commit 7cd779b

Browse files
committed
fix: 修复detect_size属性名错误,优化最小框过滤日志
- 修复textline_merge中使用detect_size而非detection_size的错误 - 优化面积过滤日志输出,info显示摘要,debug显示详细信息 - 添加被过滤框的大小、面积、占比等详细信息 - 更新v1.9.1更新日志,补充检测和过滤优化说明
1 parent ac71e1d commit 7cd779b

2 files changed

Lines changed: 16 additions & 5 deletions

File tree

doc/CHANGELOG_v1.9.1.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@
2828
- 优化文件删除流程,删除单个文件不重建列表,保持文件夹展开状态
2929
- 改进文件夹路径转换逻辑,正确处理翻译后的文件夹
3030

31+
### 检测和过滤
32+
- 优化最小框过滤逻辑,添加对条漫(极端长宽比图片)的特殊处理
33+
- 改进面积过滤算法,使用切割块面积作为参考,提高过滤准确性
34+
- 优化日志输出,debug模式下显示被过滤框的详细信息(大小、面积、占比)
35+
3136
---
3237

3338
## 升级说明

manga_translator/manga_translator.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1314,12 +1314,18 @@ async def _run_textline_merge(self, config: Config, ctx: Context):
13141314

13151315
if filtered_out_regions:
13161316
reference_desc = f'切割块({patch_size}x{w})' if require_rearrange else f'整图({img_w}x{img_h})'
1317+
filter_ratio = len(filtered_out_regions) / before_filter_count * 100 if before_filter_count > 0 else 0
1318+
# Info级别:只显示摘要
13171319
logger.info(f'合并后面积过滤: 参考={reference_desc}, 最小面积比例={config.detector.min_box_area_ratio:.4f} ({config.detector.min_box_area_ratio*100:.2f}%), '
1318-
f'过滤前={before_filter_count}, 过滤后={after_filter_count}, 移除={len(filtered_out_regions)} (仅单框区域)')
1319-
for idx, (region, ratio, num_lines, was_rearranged) in enumerate(filtered_out_regions[:5]):
1320-
logger.debug(f' 移除单框区域[{idx+1}]: 面积={region.real_area:.1f}像素, 占比={ratio*100:.3f}%, 文本行数={num_lines}, 文本="{region.text[:20]}"')
1321-
if len(filtered_out_regions) > 5:
1322-
logger.debug(f' ... 还有 {len(filtered_out_regions)-5} 个被过滤的单框区域未显示')
1320+
f'过滤前={before_filter_count}, 过滤后={after_filter_count}, 移除={len(filtered_out_regions)} ({filter_ratio:.1f}%, 仅单框区域)')
1321+
# Debug级别:显示详细信息
1322+
if self.verbose:
1323+
for idx, (region, ratio, num_lines, was_rearranged) in enumerate(filtered_out_regions):
1324+
# 获取框的宽高
1325+
x1, y1, x2, y2 = region.xyxy
1326+
width = x2 - x1
1327+
height = y2 - y1
1328+
logger.debug(f' 移除单框区域[{idx+1}]: 大小={width:.0f}x{height:.0f}, 面积={region.real_area:.1f}像素, 占比={ratio*100:.3f}%, 文本="{region.text[:20]}"')
13231329

13241330
new_text_regions = []
13251331
for region in text_regions:

0 commit comments

Comments
 (0)