使用python识别图像中的文字

以下内容主要介绍一下使用python语言及PIL,pytesser模块来识别图片中的文字,这样方便我们在模拟网站登录时识别验证码(可能也需要用到selenuim模块)。

现在正式开始介绍:

PIL安装

PIL官方下载:http://www.pythonware.com/products/pil/

至于详细安装步骤,我不再赘述,这篇文章讲的很详细:
http://blog.csdn.net/hqzxsc2006/article/details/47081887

pytesser安装

  PyTesser使用Tesseract OCR引擎,将图像转换到可接受的格式,然后执行tesseract提取出文本信息。使用PyTesser ,你无须安装Tesseract OCR引擎,但必须要先安装PIL模块(Python Image Library,python的图形库)

  pytesser下载:http://code.google.com/p/pytesser/ 若打不开,可通过百度网盘下载:http://pan.baidu.com/s/1o69LL8Y

pytesser配置

下载好后进行解压,然后将压缩包里面的所有内容(如果有的话注意不将压缩软件自动创建的文件夹整个复制进pytesser)复制到Python27\Lib\site-packges\pytesser下,若没有pytesser文件夹则自己新建。

接下来打开pytesser文件夹,将pytesser.py修改成init.py,然后打开py文件进行修改:
1. import Image —> from PIL import Image
2. tesseract_exe_name = ‘tesseract’ —> tesseract_exe_name = ‘pytesser文件夹下的tesseract.exe文件的路径’
3. 或者第二步不用操作,直接将tesseract.exe文件的路径添加进PATH环境变量即可 。 我的路径为:C:\Python27\Lib\site-packages\pytesser 大家可根据自己的安装目录来添加。

测试

解压目录下有README文件,使用任意文本编辑器打开,找到Usage一行,根据Usage提供的代码进行测试。值得一提的是代码里的文件路径需要修改为自己的文件所在路径

如果所有结果完全一样,那么Pytesser到此安装成功了

若报错:
使用python识别图像中的文字_第1张图片
请注意检验一下pytesser配置过程中步骤二或步骤三是否正确。此错误产生的原因是: 调用tesseract.exe失败。
  
示例代码:

from pytesser import *
#提取图片文件(自己根据图片目录填写路径)
text = image_file_to_string('C:/Python27/Lib/site-packages/pytesser/fonts_test.png', graceful_errors=True)
print text

输出:

12 pt
And Arnazwngw few dwscotheques provwde jukeboxes
Tames Amazmgly few dnscotheques pmvxde Jukeboxes
24 pt:
Arial: Amazingly few discotheques
provide julCourier: Ama zimgly few
discotheque S provide
j u k e b ox e S .
Times: Amazingly few discotheques provide
jukeboxes.

注:此方法识别验证码不太准确,但对于字迹清晰的图片准确率还是挺高的,我们可以使用此方法将图片内容转为文字格式。

附准确识别验证码方法:

Python识别验证码以及识别算法:http://blog.csdn.net/u010402786/article/details/48657215

python 验证码 高阶验证:http://blog.csdn.net/frank_good/article/details/52251062
  

你可能感兴趣的:(python)