银行收据的 OCR
OCR for Bank Receipts
我正在处理银行收据的 OCR 问题,我需要提取日期和帐号等详细信息。处理完输入后,我正在使用 Tessaract-OCR(在 python 中使用 pyteserract),因为 same.I 已经获得了 hocr 输出文件,但是我无法理解 it.How 是吗?从 HOCR 输出文件中提取信息?请注意,收据像普通表格一样在方框中填写了数字。
我将以下文本用于 extraction.Should 我使用了不同的编码?
import os
if os.path.isfile('output.hocr'):
fp=open('output.hocr','r',encoding='UTF-8')
text=fp.read()
fp.close()
注意:所附图片是 data.These 图片以 pdf 文件形式提供,我正在以编程方式将其转换为图片。
您可以简单地提供图像作为输入,而不是处理和创建 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,通过分析特定区域而不是整个文档来使其更加稳健。
我将以下文本用于 extraction.Should 我使用了不同的编码?
import os
if os.path.isfile('output.hocr'):
fp=open('output.hocr','r',encoding='UTF-8')
text=fp.read()
fp.close()
注意:所附图片是 data.These 图片以 pdf 文件形式提供,我正在以编程方式将其转换为图片。
您可以简单地提供图像作为输入,而不是处理和创建 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,通过分析特定区域而不是整个文档来使其更加稳健。