Python2.7+pytesser图片文字识别功能
原文地址:http://blog.csdn.net/lanfan_11/article/details/45558573
原文已经写的很详细了,结合自己操作中的一些错误和感悟,整理了一下,形成了下面的文章。
-----------------------------------------------------------------------------------------------------------------
测试中需要将图片上的数字提取出来,和数据库的数字比较,判断图片上的数字是否正确。
网上查了下相关资料,了解到pytesser是谷歌OCR开源项目的一个模块,在Python中导入这个模块即可将图片中的文字转换成文本。
pytesser调用了tesseract。当在Python中调用pytesser模块时,pytesser又用tesseract识别图片中的文字。故安装的时候不需要安装tesseract。
具体安装步骤如下:
首先,安装Python2.7版本
然后,安装PIL工具,下载的地址是:http://www.pythonware.com/products/pil/,pytesser的使用需要PIL库的支持。 选择安装python对应的版本。
接着下载pytesser,下载的地址是:http://code.google.com/p/pytesser/downloads/list
由于code.google.com网站关闭了,所以,只能在csdn上下载了。下面是csdn的下载网址:http://download.csdn.net/download/pyliang_2008/5564135
最后,安装pytesser :
1、解压pytesser ,将解压后的文件复制到Python安装目录的Lib\site-packages下,直接使用,比如我的安装目录是:C:\Python27\Lib\site-packages。
2、把2个目录添加到环境变量之中。 注:若不添加环境变量,仅仅是执行第3步,执行import pytesser的时候可以导入成功,但是不能使用模块的任何函数,使用时会报函数错误。
C:\Python27\Lib\site-packages
C:\Python27\Lib\site-packages\pytesser-v0.0.1
3、还要在C:\Python27\Lib\site-packages下面添加.pth 文件(pytesser-v0.0.1.pth),这个文件里面,只有 “pytesser-v0.0.1”字符串。
注:若只执行第2步,不执行第3步,则import pytesser时会提示没有此模块。
另外: 为了美观,可以将pytesser-v0.0.1修改为pytesser。但是对应的相关位置都需要进行修改。
完成以上步骤之后,就可以编写图片文本识别的Python脚本了。
新建一个test.py的文件,复制下面的代码:
- from pytesser import *
- im = Image.open('D:\\fonts_test.png')
- print im
- bg = Image.new("RGB",im.size,(255,255,255)) #转换图片格式,不转换提示错误
- print bg
- bg.paste(im,im)
- print im
- text = image_to_string(bg)
- print text
- #以下代码存在问题,未调试通过。
- text = image_file_to_string('fonts_test.png', graceful_errors=True)
- print "Using image_file_to_string():"
- print text
将pytesser路径下的fonts_test.png 图片复制到test.py的存放位置,可以执行下试试效果。