我试图在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只解析这部分图像?绝对坐标不是一个选项,因为每张图片都不同。我猜最好的逻辑是这样的:在黑色背景上只解析白色数字。
答案 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
文件。
如果--psm 11
适用于其他水表图像,那么您可能只需要在该行的末尾搜索-m3
以提取谁的水表线字符。有了它,您可以立即获得前5位数字。
希望得到这个帮助。