pytesseract是基于Python的OCR工具, 底层使用的是Google的Tesseract-OCR 引擎,支持识别图片中的文字,支持jpeg, png, gif, bmp, tiff等图片格式。本文介绍如何使用pytesseract 实现图片文字识别。
引言
OCR(Optical character recognition,光学字符识别)是一种将图像中的手写字或者印刷文本转换为机器编码文本的技术。通过数字方式存储文本数据更容易保存和编辑,可以存储大量数据,比如1G的硬盘可以存储数百万本书。
OCR技术可以将图片,纸质文档中的文本转换为数字形式的文本。OCR过程一般包括以下步骤:
- 图像预处理
- 文本定位
- 字符分割
- 字符识别
- 后处理
最初由惠普开发,后来Google赞助的开源OCR引擎 tesseract 提供了比较精确的文字识别API,本文将要介绍的Python库Pytesseract就是基于Tesseract-OCR 引擎。
环境配置
环境要求:
- Python 3.6+
- 太平船务库
- 安装Google Tesseract OCR
- 系统:windows/mac/linux,我的系统是Windows10
1. 安装谷歌 Tesseract
Tesseract OCR github地址: GitHub - tesseract-ocr/tesseract: Tesseract Open Source OCR Engine (main repository)
Windows Tesseract下载地址: Index of /tesseract
Mac和Linux安装方法参考: Introduction | tessdoc
安装时可以选择需要的语言包:
安装完成后,添加到环境变量PATH中,我的安装路径是: 。C:\Program Files\Tesseract-OCR
命令行窗口输入: ,查看是否安装成功。tesseract
<span style="color:#333333"><span style="background-color:#fefefe"><span style="color:#444444"><span style="background-color:#f6f6f6">$ tesseract
Usage:
tesseract --<span style="color:#333333"><strong>help</strong></span> | --<span style="color:#333333"><strong>help</strong></span>-extra | --<span style="color:#333333"><strong>version</strong></span>
tesseract --<span style="color:#333333"><strong>list</strong></span>-langs
tesseract imagename outputbase [<span style="color:#333333"><strong>options</strong></span>...] [configfile...]
OCR option<span style="color:#bc6060">s:</span>
-<span style="color:#333333"><strong>l</strong></span> LANG[+LANG] Specify <span style="color:#333333"><strong>language</strong></span>(s) used <span style="color:#333333"><strong>for</strong></span> OCR.
NOTE: These <span style="color:#333333"><strong>options</strong></span> must occur before any configfile.
Single option<span style="color:#bc6060">s:</span>
--<span style="color:#333333"><strong>help</strong></span> Show this <span style="color:#333333"><strong>help</strong></span> message.
--<span style="color:#333333"><strong>help</strong></span>-extra Show extra <span style="color:#333333"><strong>help</strong></span> <span style="color:#333333"><strong>for</strong></span> advanced users.
--<span style="color:#333333"><strong>version</strong></span> Show <span style="color:#333333"><strong>version</strong></span> information.
--<span style="color:#333333"><strong>list</strong></span>-langs List available languages <span style="color:#333333"><strong>for</strong></span> tesseract engine.
</span></span></span></span>
2. 安装
Python tesseract: GitHub - madmaze/pytesseract: A Python wrapper for Google Tesseract
pip安装pytesseract
<span style="color:#333333"><span style="background-color:#fefefe"><span style="color:#444444"><span style="background-color:#f6f6f6"><span style="color:#333333"><strong>pip</strong></span> install pytesseract
</span></span></span></span>
另外需要安装一下Pillow库,用于图像处理。
<span style="color:#333333"><span style="background-color:#fefefe"><span style="color:#444444"><span style="background-color:#f6f6f6"><span style="color:#333333"><strong>pip</strong></span> install Pillow
</span></span></span></span>
文字识别小例子
先准备一张包含英文字符的图片,下面的代码实现提取图片中的中文和英文字符,并识别为字符串&