如何将专门找到的(OCR)文本添加到列表中并将其写入Excel文件? [pytesseract]

时间:2019-02-11 08:06:04

标签: python machine-learning ocr

我想通过pytesseract从许多PNG / JPEG文件中提取某些信息,并在可能的情况下将其写入Excel文件中。

我想出了如何从图片中提取文本,但是我还没有想到的是:

1)如何提取特定信息而不是整个单词?例如,我想要每张照片的帐号和参考号,仅此而已。

2)如何将这些帐号和参考号写入外部文件(例如excel)?

我将附上我到目前为止的内容:

我听说使用pandas数据框是将数据附加到Excel列中的一种好方法,但是我不确定是否可以对这样的任务执行此操作。

from PIL import Image
import pytesseract
import pandas as pd

pytesseract.pytesseract.tesseract_cmd = "C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe"

im = Image.open("C:/Users/user1/desktop/scripts/ocr/example bills/pic.jpg")


content = pd.DataFrame()
text = pytesseract.image_to_string(im, lang= 'eng')
temp = pd.DataFrame({'Words':[text]})
content.append(temp)

content.head()

print(text)
writer = pd.ExcelWriter('wordstest.xlsx')
content.to_excel(writer,'Sheet1')
writer.save()

预期结果:

一个具有两列的Excel文件,帐号和参考号。

实际结果:

没有数据的excel文件。

2 个答案:

答案 0 :(得分:0)

要将数据框转换为电子表格,请尝试此

content.to_csv('wordstest.csv',sep=',')

可以在excel中打开。如果您需要更多列,只需将它们添加到数据框中,然后编写csv文件

答案 1 :(得分:0)

您必须过滤从图像中读取的文本,或者找到要读取的图像部分,然后才能使用tesseract实际读取它们。为了过滤读取的文本,您可以使用正则表达式,并找到图像中的部分,您必须使用一些计算机视觉算法来预测图像的某些部分(对象检测)并将其训练在数据上。

要向excel中添加数据框,只需使用熊猫to_csvto_excel方法