如何在Tesseract中设置OCR扫描的最小、最大字体尺寸
Tesseract字体尺寸配置及相邻小字干扰解决方案
Tesseract原生没有提供直接限定识别字体高度/宽度范围的开箱配置项,无法通过单一配置直接跳过指定字号区间外的文本,针对紧邻小字干扰识别的问题,可采用以下三类方案:
- 识别结果后过滤(鲁棒性最高,优先推荐)
该方案完全规避图像移位导致的硬裁剪误差:- 调用Tesseract时追加参数
-c tessedit_create_tsv=1,输出带尺寸、位置标注的TSV结构化结果,结果中会包含每一行识别文本的边界框高度字段 - 提前统计业务场景下目标文本的常规字高范围,识别完成后直接过滤掉字高低于设定阈值的文本行即可
- 调用Tesseract时追加参数
- 识别前预处理过滤
送入OCR前先对二值化后的图像做连通域检测,计算每个独立文本块的平均字符高度,将高度远低于目标文本阈值的小字区域直接填充为背景色,再传入Tesseract识别,该方案对移位场景的适配性远高于固定坐标裁剪。 - 内置参数调优(效果不稳定,仅作补充)
Tesseract有个未在官方文档重点标注的参数textord_min_xheight,可设置最小字符x高度(单位为像素),低于该高度的字符会在内部分析阶段被判定为噪声过滤。该参数效果受图像DPI、二值化质量影响较大,稳定性弱于前两种方案,调用示例如下:tesseract input.jpg output --psm 6 -c textord_min_xheight=15
命令中15为示例阈值,需替换为实际场景下目标文本的最小x高度值。
内容的提问来源于stack exchange,提问作者Alisha
相关产品推荐
相关产品推荐

