首页 > 解决方案 > 银行收据的 OCR

问题描述

在此处输入图像描述我正在处理银行收据的 OCR 问题,我需要提取日期和帐号等详细信息。处理输入后,我使用 Tessaract-OCR(在 python 中使用 pyteseract)。我已经获得了 hocr 输出文件,但是我无法理解它。我们如何从 HOCR 输出文件中提取信息?请注意,收据的方框中填写了数字,就像普通表格一样。

我使用以下文本进行提取。我应该使用不同的编码吗?

import os
if  os.path.isfile('output.hocr'):
    fp=open('output.hocr','r',encoding='UTF-8')
    text=fp.read()
    fp.close()

注意:所附图像是数据的一个示例。这些图像以 pdf 文件的形式提供,我正在以编程方式将其转换为图像。

标签: pythonocrtesseract

解决方案


您可以简单地提供图像作为输入,而不是处理和创建HOCR输出文件。

尝试:-

from PIL import Image
import pytesseract

im = Image.open("reciept.jpg")

text = pytesseract.image_to_string(im, lang = 'eng')

print(text)

该程序获取要通过 OCR 运行的图像的位置,并从中提取文本,将其存储在变量text中,然后打印出来。如果您愿意,您也可以将数据存储在text单独的文件中。

PS:-与 tesseract 处理的图像相比,您尝试处理的图像太复杂了。因此,在处理文本后,您可能会得到不正确的结果。我绝对建议您在使用前对其进行优化,例如减少使用的字符集、在将图像传递给 OCR 之前对其进行处理、对图像进行上采样、dpi 超过 250 等。


推荐阅读