http://blog.sina.com.cn/s/blog_628cc2b70101cjvp.html
Python图片文本识别使用的工具是PIL和pytesser。因为他们使用到很多的python库文件,为了避免一个个工具的安装,建议使用Anaconda.
pytesser是谷歌OCR开源项目的一个模块,在Python中导入这个模块即可将图片中的文字转换成文本。pytesser调用了tesseract。当在Python中调用pytesser模块时,pytesser又用tesseract识别图片中的文字。pytesser的使用步骤如下:
首先,安装Python2.7版本,这个版本比较稳定,建议使用这个版本。
其次,安装python opencv,请自行百度之。
然后,安装PIL工具,下载的地址是:http://www.pythonware.com/products/pil/,pytesser的使用需要PIL库的支持。
接着下载pytesser,下载的地址是:https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pytesser/pytesser_v0.0.1.zip 如果翻不了墙的话,请使用如下:pytesser下载:http://code.google.com/p/pytesser/ 若打不开,可通过百度网盘下载:http://pan.baidu.com/s/1o69LL8Y
完成以上步骤之后,就可以编写图片文本识别的Python脚本了。参考脚本如下:
from pytesser.pytesser import image_to_string
from PIL import *
import Image
import ImageEnhance
image = Image.open(r"D:\workstation\driving_licence.jpg")
#使用ImageEnhance可以增强图片的识别率
enhancer = ImageEnhance.Contrast(image)
image_enhancer = enhancer.enhance(4)
print image_to_string(image_enhancer)
tesseract是谷歌的一个对图片进行识别的开源框架,免费使用,现在已经支持中文,而且识别率非常高,这里简要来个helloworld级别的认识
下载地址:http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe
在tesseract目录下,有个tesseract.exe文件,主要调用这个执行文件,用cmd运行到这个目录下,在这个目录下同时放置一张需要识别的图片,这里是driving_license.jpg
然后运行:tesseract driving_license.jpg result
会把driving_license.jpg自动识别并转换为txt文件到result.txt
但是此时中文识别不好,要下载一个中文包:https://github.com/tesseract-ocr/tessdata/raw/master/chi_sim.traineddata
然后找到tessdata目录,把eng.traineddata替换为chi_sim.traineddata,并且把chi_sim.traineddata重命名为eng.traineddata
其实就是下载一个兼容 python2.7 Pillow-2.1.0.win-amd64-py2.7.exe
Python Error in image_to_string