【问题标题】:Parse only a specific part of image with Tesseract使用 Tesseract 仅解析图像的特定部分
【发布时间】:2017-10-11 10:33:02
【问题描述】:

我正在尝试在 Android 上使用 Tesseract OCR 在您拍照时读取燃气表的状态:

这是我解析这张图片时的输出:

vb"
22% BK-G4T ||||||||I||||I|||ii\|||\
’ 64 2007
22?: 06.0"! 'm'lm Mm. 23212274 ,
v 2,0 dm’ 1
pmn 0_5 bar tm ~25°C v‘40"(1 I
1amp é 0_o1m’ sb15°cl :Sp 20°c l
'I ELSTEQ~I¢¢>>InstrogwnSs HB Z _ 18 _ 1013 . ‘
a, 069373593435- 3 I
i'23212214 Y _ w w V'
g

这个想法是提取燃气表状态的前 5 位数字(此图像上的 06937)。

我的问题是,有没有办法训练 Tesseract 只解析图像的这一部分?绝对坐标不是一种选择,因为每张图片都会有所不同。我猜最好的逻辑是:只解析黑色背景上的白色数字。

【问题讨论】:

    标签: android ocr tesseract


    【解决方案1】:

    通过更改page segmentation mode (psm)tesseract 4.00.00 alpha 能够正确读取仪表行字符,如06937598-m3 和其他字符。

    使用的命令是:

    tesseract meter.jpg output --psm 11 -l eng
    

    --psm 11 表示识别"Sparse text. Find as much text as possible in no particular order"

    这是显示所有 ASCII 控制字符的 output 文件。

    如果--psm 11 适用于其他仪表图像,那么您只需在行尾搜索-m3 即可提取谁仪表行字符。这样,您可以立即获得前 5 位数字。

    希望对您有所帮助。

    【讨论】:

    • 我不确定 tesseract 4 是否支持 android。我在我的项目中使用 tess-two。这种方法的问题是 m3 有时不可见。 (例如:i.stack.imgur.com/VYoZm.jpg)我将尝试使用 OpenCV 隔离我需要的图片部分。
    猜你喜欢
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 2020-09-23
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    相关资源
    最近更新 更多