使用 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