我想通过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文件。
答案 0 :(得分:0)
要将数据框转换为电子表格,请尝试此
content.to_csv('wordstest.csv',sep=',')
可以在excel中打开。如果您需要更多列,只需将它们添加到数据框中,然后编写csv文件
答案 1 :(得分:0)
您必须过滤从图像中读取的文本,或者找到要读取的图像部分,然后才能使用tesseract实际读取它们。为了过滤读取的文本,您可以使用正则表达式,并找到图像中的部分,您必须使用一些计算机视觉算法来预测图像的某些部分(对象检测)并将其训练在数据上。
要向excel中添加数据框,只需使用熊猫to_csv
或to_excel
方法