银行收据OCR

2024-04-25 11:44:07 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description here我正在研究银行收据的OCR问题,我需要提取诸如日期和帐号之类的详细信息。在处理了输入之后,我使用了Tessaract OCR(在python中使用pyteserract),我获得了hocr输出文件,但是我无法理解怎么了我们是否从HOCR输出文件中提取信息?请注意,收据上的数字和普通表格一样都是用方框填写的。在

我用下面的文字提取。应该我用不同的编码?在

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

在注:附件图像就是一个例子数据。这些图像在pdf文件中可用,我正在以编程方式将其转换为图像。在


Tags: 文件图像信息outputos详细信息银行ocr
2条回答

您只需提供图像作为输入,而不是处理和创建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中的数据存储在单独的文件中。在

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

我个人会用一些更像tesseract的东西来做OCR,然后可能用opencv和surf来做勾选框。。。在

甚至可以用opencv和surf对每个部分进行边缘检测,并对特定区域进行ocr,从而通过分析特定区域而不是整个文档,使其更加健壮。。在

相关问题 更多 >