使用 pytesseract 在 Python 中进行文本识别

从图像中提取文本作为字符串值称为光学字符识别 (OCR) 或简称为文本识别。 这篇博文告诉您如何从 Python 运行 Tesseract OCR 引擎。 例如,如果您将以下图像存储在 diploma_legal_notes.png 中,您可以对其运行 OCR 以提取文本字符串。

' nn nnCLASS OF 2019!nnYOUR DIPLOMA GRANTS YOU MANY NEWnPOWERS AND PRIVILEGES. THESE INCLUDE:nn+ YOU MAY NOW LEGALLY PERFORMnMARRIAGES AND ARREST PEOPLE.nn+ IF YOU HAVE YOUR DIPLOMA WITH YOU,nYOU CAN USE. GROCERY STORE EXPRESSnLANES WITH ANY NUMBER OF ITEMS.nn+ ALL GRADUATES ARE ENTITLED TonDELETE ONE WORD OF THEIR CHOICE.nFROM THE OXFORD ENGUSH DICTIONARY.n+ THE UNIVERSITY WILL MAIL YOU YOUR’nWORKING LIGHTSABER WITHIN 6-8 WEEKS.n* YOU CAN SEND MAIL WITHOUT STAMPS.n+ YOU HAVE EARNED THE RIGHT TOnCHALLENGE THE BRITISH ROYAL FAMILYnTO TRIAL BY COMBAT. IF YOU DEFEATnTHEM ALL, THE THRONE |S YOURS.nn* YOU MAY NOL IGNORE. "DO NOT PET”nWARNINGS ON AIRPORT SECURITY DOGS.nn= CONGRATULATIONS,nn nn nx0c'

请注意,文本识别并不十分完美。 顶部的“CONGRATULATIONS”被错误地放在了底部,“NOW”这个词被识别为“NOL”,“IS”这个词有一个竖线字符“|” 而不是大写的“I”,并且似乎添加了一些令人困惑的标点符号。清理 OCR 扫描取决于您的特定项目。 这篇博文将简单地向您展示从 Python 执行 OCR 的代码。

安装 Tesseract

第一次运行 pip install pytesseract. pytesseract 包是 Tesseract OCR 引擎的 Python 包装器。 如果您在运行 pip 时需要帮助,请参阅 Pip 快速指南或什么是 Pip? Python 新手指南。

此时,如果您尝试使用 pytesseract 模块,你会得到一个 TesseractNotFoundError 消息说, tesseract is not installed or it's not in your path. (您可以在我的免费书籍 Beyond the Basic Stuff with Python 的第 2 章中了解 PATH 环境变量。)接下来让我们安装 Tesseract OCR 引擎本身。

在 Windows 上,您可以下载 Tesseract 5.0.0 版的安装程序并运行安装程序。 (要获得最新版本的 Tesseract,请访问 UB Mannheim 网页上的 Tesseract。)

在 macOS 上,根据这篇文章,您可以通过打开终端窗口并运行来安装 Tesseract with Brew brew install tesseract --all-languages. 您还可以通过运行在带有 MacPorts 的 macOS 上安装 Tesseract sudo port install Tesseract,然后运行 sudo port install tesseract-eng 安装英语语言。 对于其他语言,请使用此链接中列出的语言代码。

在 Linux 上,Tesseract 可能已经安装。 如果不是,根据这篇文章,您可以运行以下命令:

在 Ubuntu 上,运行 sudo apt-get install tesseract-ocr 进而 sudo apt-get install tesseract-ocr-all 安装所有语言。 您还需要为其安装 ImageMagick convert 通过运行程序 sudo apt-get install imagemagick.

在 Fedora 上,运行 sudo dnf install tesseract

在 Manjaro 上运行 sudo pacman -Syu tesseract

安装枕头

pytesseract 模块还需要 Python 的 Pillow 模块。 您可以通过运行 pip 安装 pip install pillow 在 Windows 或 pip3 install pillow 在 macOS 和 Linux 上。

从 Python 运行 Tesseract

要从名为 image.png 的图像文件中提取文本,请运行以下代码:

import pytesseract as tess
from PIL import Image
img = Image.open('image.png')
text = tess.image_to_string(img)
print(text)

图像中已识别的文本作为字符串值从 image_to_string().

其他资源

要查看所有这些步骤的示例,请查看此 YouTube 视频:Image to Text with pytesseract

阅读更多

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注