Windard +
Github Zhihu RSS

Python验证码识别

也只是因为在网上偶然间发现了一篇讲用Python识别验证码的博客,觉得非常神奇。Python什么时候还能干这么高大上的活了。仔细的看了一下,识别算法是Google的,一般也只能识别简单的验证码,复杂点的还是得要靠人工智能,机器学习什么什么的。

首先是要下载安装几个需要的库。
Python Image Library(PIL)Python的图像处理库。
tesseract-ocr 谷歌的OCR识别引擎。
tesseract Python的图像识别库。

反正我试了很长时间没有弄好,现在只能做一些简单的识别。代码如下。

from  pytesser import *
im1 = Image.open("code.png")
text1 = image_to_string(im1)
print text1
print "\n"
im2 = Image.open("fonts_test.png")
text2 = image_to_string(im2)
print text2

两张图片分别如下。

code.png

fonts_test.png

识别出来的效果如下。

code_successful.jpg

重要更新:

这个方法非常不好,不仅因为不好用,那个Python的代码非得要在这个文件夹下才能够执行,而且不支持中文。 查看源代码就会发现它还是0.0.1的版本,在2007年的时候就从此再也没有更新了。
后来我们看了它的源码,准备将它给打包成一个Python库,就可以引入使用了,但是发现比较复杂。
最终,好吧,其实这个也是引用了谷歌的Tesseract-OCR的图片识别引擎才起作用的,那我们为什么不直接使用这个引擎呢?

可以在这里下载:https://code.google.com/p/tesseract-ocr/downloads/list 也可以下载我下载好了的,tesseract-ocr-setup-3.02.02.zip

自带是英文的,如果需要中文的那就只能自己去下载了。

安装好了之后加入环境变量就可以使用了,tesseract -v可以查看版本号。
使用tesseract imagename outputfile就可以了,如果想要高级用法,直接输入tesseract即可查看。

再次更新

我把中文的那个语言包下载下来了,试了一下它真正的效果。并没有那么惊人,文本识别毕竟还是没有那么简单。

中文语言包

中文的使用方法tesseract -l chi_sim imagename ouyputfile

最后更新

还是linux上好使吖,再次需要了图像识别,发现我的ubuntu 14.04LTS 竟然自带有OCR Tesseract

这个图像识别引擎,就算是没有也只需要一行代码即可装上。

sudo apt-get install tesseract-ocr

ubuntu的软件库,关于OCR Tesseract

tesseract-ocr转移到github上了,代码仓库

关于中文

参考链接:
python利用pytesser模块实现图片文字识别
wxPython利用pytesser模块实现图片文字识别
Python 利用pytesser模块识别图像文字
python验证码识别
使用Python进行验证码识别
利用python pytesser 识别简单验证码
python:验证码识别入门
python图像处理之二值去噪
python:验证码识别


headlogo   Windard

但行好事,莫问前程

Blog

Opinion

Project

页阅读量:  ・  站访问量:  ・  站访客数: