晨风

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的文件,复制下面的代码:

  1. from pytesser import *
  2. im = Image.open('D:\\fonts_test.png')
  3. print im
  4. bg = Image.new("RGB",im.size,(255,255,255)) #转换图片格式,不转换提示错误
  5. print bg
  6. bg.paste(im,im)
  7. print im
  8. text = image_to_string(bg)
  9. print text
  10. #以下代码存在问题,未调试通过。
  11. text = image_file_to_string('fonts_test.png', graceful_errors=True)
  12. print "Using image_file_to_string():"
  13. print text

 

将pytesser路径下的fonts_test.png 图片复制到test.py的存放位置,可以执行下试试效果。


 

posted on 2017-05-17 14:50  morwind  阅读(4694)  评论(0编辑  收藏  举报

导航