使用 pytesseract 对图像执行 OCR

可以使用 pytesseract 库从图像中提取文本。 在本教程中,我们将使用 pytesseract 从图像中提取文本。 Tesseract 是一个由 Google 赞助的开源 OCR 库。 源代码可在此处获取:https://tesseract-ocr/tesseract,您还可以在那里找到有关该库的更多信息。pytesseract 是一个轻量 python 包装器,为可执行文件提供 pythonic API。

准备工作

确保您已安装 pytesseract:

pip install pytesseract

您还需要安装 tesseract-ocr。 在 Windows 上,有一个可执行安装程序,您可以在此处获取: https://github.com/tesseract-ocr/tesseract/wiki/4.0-with-LSTM#400-alpha -for-windows 。在 Linux 系统上,您可以使用 apt-get:

sudo apt-get tesseract-ocr

Mac 上最简单的安装方法是使用 brew:

brew install tesseract

此示例的代码位于 04/10_perform_ocr.py 中。

工作原理

执行示例的脚本。 该脚本非常简单:

import pytesseract as pt
from PIL import Image

img = Image.open("textinimage.png")
text = pt.image_to_string(img)
print(text)

将要处理的图像如下:

image 2024 01 29 15 22 27 382

该脚本给出以下输出:

This is an image containing text.
And some numbers 123456789

And also special characters: !@#$%"&*(_+

工作原理

该图像首先作为 Pillow Image 对象加载。 我们可以直接将此对象传递给 pytesseract image_to_string() 函数。 该函数在图像上运行 tesseract 并返回它找到的文本。

还有更多

在抓取应用程序中使用 OCR 的主要目的之一是解决基于文本的验证码。 我们不会讨论验证码解决方案,因为它们可能很麻烦,并且在其他 Packt 标题中也有记录。