为 Tesseract OCR 清理照片的方法?

Ways to clean up photos for Tesseract OCR?

我是 Tesseract 的新手,想知道是否有任何方法可以为简单的 OCR 程序清理照片以获得更好的结果。在此先感谢您的帮助! 我使用的代码:

#loads tesseract
tess.pytesseract.tesseract_cmd = 
#filepath
file_path = 
image = Image.open(file_path)
#processes image
text = tess.image_to_string(image, config='')
print(text)

我过去使用过 pytesseract,经过以下四次修改,只要文本字体不是太小,我几乎可以阅读任何内容。 pytesseract 似乎很难处理小字体,即使在调整大小后也是如此。

- 转换为黑白 -

将图像转换为黑白通常会提高程序的识别度。我用了 OpenCV to do so and got the code from the end of this article.

-裁剪-

如果您所有的照片格式相似,因为您需要的文字总是在同一位置,我会推荐 cropping 您的照片。如果可能,只将照片的确切部分传递给 pytesseract 您要分析的部分,程序分析的越少越好。就我而言,我正在截取屏幕截图并指定截取屏幕截图的确切区域。

- 调整大小 -

您可以做的另一件事是对原始照片进行缩放。有时,在 resizing 几乎翻倍其初始大小 pytesseract 之后,阅读文本会容易得多。一般来说,文字越大越好,但有一个限制,因为照片在调整大小后像素化程度可能会太高而无法识别。

- 配置-

我注意到 pytesseract 识别文本比识别数字容易得多。如果可能,将照片分成几个部分,每当您遇到数字问题时,您可以使用:

pytesseract.image_to_string(image, config='digits')