使用Tesseract仅解析图像的特定部分

时间:2017-10-11 10:33:03

标签: android ocr tesseract

我试图在Android上使用Tesseract OCR来读取燃气表的状态:picture

这是解析此图像时的输出:

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只解析这部分图像?绝对坐标不是一个选项,因为每张图片都不同。我猜最好的逻辑是这样的:在黑色背景上只解析白色数字。

1 个答案:

答案 0 :(得分: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文件。

enter image description here

如果--psm 11适用于其他水表图像,那么您可能只需要在该行的末尾搜索-m3以提取谁的水表线字符。有了它,您可以立即获得前5位数字。

希望得到这个帮助。