tesseract从表中读取值

时间:2015-07-25 10:33:43

标签: python tesseract python-tesseract

我的问题是post关于使用OCR从图像中的表中提取数据的问题。

我正在使用tesseract将表格图片转换为文字。除了不保留表的格式之外,这很有效。一种解决方案是用一些字母替换列tesseract会识别并将其愚弄为一些文本。

以下是没有列enter image description here

的表的示例

我使用以下代码绘制“QQ”列

im=Image.open("file.png")
draw  = ImageDraw.Draw(im)
font=ImageFont.truetype("/usr/share/fonts/gnu-free/FreeSerifBold.ttf",12)
by = font.getsize("S")[1]
col = [240,480]
px = []

for y in range(0,im.size[1],by):
    for x in col:
        draw.text((x,y),"QQ",font=font,fill=0)

im.save("res-file.png")
im.show()

给我以下图片 enter image description here

问题是tesseract甚至认出了QQ。 我在一个空白页面上写了QQ列,并且tesseract没有认出来。

有没有办法使用tesseract将png格式的表转换为文本?有什么东西逃过了我吗?

1 个答案:

答案 0 :(得分:1)

主要问题是QQ的垂直间距。通过添加一些垂直间距并调整图像大小我得到了可接受的结果

im=Image.open("file.png")
draw  = ImageDraw.Draw(im)
font=ImageFont.truetype("/usr/share/fonts/gnu-free/FreeSerifBold.ttf",12)
by = font.getsize("S")[1]
col = [240,480]
px = []

for y in range(0,im.size[1],by+5):
    for x in col:
        draw.text((x,y),"QQ",font=font,fill=0)
im=im.resize((im.size[0]*2,im.size[1]*2))
im.save("res-file.png")
im.show()

以下是tesseract res-file.png outputfile

之后获得的文字

8888
8888

Shop§Dateopen§Town
Mike§2007-Nov-09§sourisvi|| e
Abbibas§2009-Jan-05§magiccity
Iuma $ 2009-Jan-05§vani|| a
Beboot§2009-Mar-31§at| antis
bascics $ 2008-Jun-27§o| d york