本教程翻译自PyImageSearch英文原文
Tesseract OCR
上周的博客内容,我们学习了如何安装Tesseract去做OCR识别。
然后我们通过一些小图片示例去应用Tesseract测试和评估这个OCR引擎的性能。
我们的结论显示,Tesseract在前景文本和背景色区分的非常清晰的图片上工作非常好。实际上,保证这些类型的分割可能极具挑战性。因此,我们倾向于训练特定领域的图像分类器和检测器。
然而,在我们需要将OCR应用于我们自己的项目的情况下,我们了解如何通过Python编程语言访问Tesseract OCR非常重要(前提是我们可以获得Tesseract所需的漂亮,干净的分段)。
在本章的其余部分,我们将学习如何安装Tesseract OCR + Python“绑定”,然后编写一个简单的Python脚本来调用这些绑定。在本教程结束时,您将能够将图像中的文本转换为Python字符串数据类型。
通过Python使用Tesseract OCR
本博客分为三部分。
首先,我们将学会如何安装pytesseract package 以便我们可以通过Python编程语言应用Tesseract。
然后,我们将开发一个简单的Python脚本来加载图片,二值化图片并且将图片传给Tesseract OCR 系统。
最后,我们将在一些示例图像上测试我们的OCR管道并查看结果。
在Python中绑定Tesseract
让我们从安装pytesseract开始吧。我们将利用pip来安装pytesseract 。
如果你使用的是虚拟环境(我强烈推荐这样,以便您可以隔离不同的项目),使用workon命令为你的环境配置合适的名称。在这个例子中,我们的虚拟环境叫做cv。
$ workon cv
接下来我们来安装 Pillow,一个跟友好的pytesseract依赖的PIL端口。
$ pip install pillow
$ pip install pytesseract
注意:pytesseract 并不是提供 一个真正的Python绑定。而是简单的提供tesseract库的接口。如果你看它在GitHub的项目你将发现该库将图像写入磁盘上的临时文件,然后在文件上调用tesseract二进制文件并捕获结果输出。这绝对有些取巧,但它为我们完成了工作。
让我们继续,查看一些将前景文本从背景中分割出来的代码,然后使用我们新安装的pytesseract。
使用Tesseract和Python应用OCR
让我们首先创建一个名字叫ocr.py 的新文件:
1. # import the necessary packages
2. from PIL import Image
3. import pytesseract
4. import argparse
5. import cv2
6. import os
7.
8. # construct the argument parse and parse the arguments
9. ap = argparse.ArgumentParser()
10. ap.add_argument("-i", "--image", required=True,
help="path to input image to be OCR'd")
11. ap.add_argument("-p", "--