5月前 156 0 0

今天看见一个关于Python进行验证码识别的文章,其中代码很短,但是感觉很有趣,加上最近也在学习一些简单的Python知识,所以决定实验一下

升级pip

pip pip install --upgrade pip

安装PIL

PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。

在Debian/Ubuntu Linux下直接通过apt安装:

$ sudo apt-get install python-imaging

Mac和其他版本的Linux可以直接使用easy_install或pip安装,安装前需要把编译环境装好:

$ sudo easy_install PIL

如果安装失败,根据提示先把缺失的包(比如openjpeg)装上。

Windows平台就去PIL官方网站下载exe安装包。 PIL官方网站 安装有可能报错 从网上搜索得知,PIL官方只有32位的安装文件,安装时会提示找不到python的安装路径。64位Win7下无法安装PIL库的原因是:PIL官方http://www.pythonware.com/products/pil/ 提供的PIL二进制安装库包都是32位的。64位程序和32位程序检测注册表的位置是不一样的:64位程序检测HKEY_LOCAL_MACHINESOFTWAREPython,而32位程序检测HKEY_LOCAL_MACHINESOFTWAREWow6432NodePython。如果安装的python是64位的,其相关信息都在HKEY_LOCAL_MACHINESOFTWAREPython下面,而32位程序则在HKEY_LOCAL_MACHINESOFTWAREWow6432NodePython下面找Python安装信息,结果找不到了,所以会报错。

网上有非官方的64位库(官方源码编译版),叫做pillow。Pillow是PIL的替代版本。其网址为:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pillow。

选着一个版本下载到本地

pip install (文件位置)./Pillow-4.0.0-cp27-none-win32.whl

如果报错

pip install --use-wheel Pillow==4.0.0

安装完毕,需要检查一下安装是否成功。

如下图所示,打开python后,输入import Image,会提示没有这个模块。因为使用pillow库需要使用from PIL import Image代替import Image。按照图中的处理,即可验证PIL是否安装成功。

from PIL import Image
im = Image.open("test.png")

安装pytesseract

Python-tesseract 是 Tesseract OCR 的 Python 封装包,可作常用的图片文件读取和解码。

下载

需要下载安装程序(tesseract-ocr-setup-3.02.02.exe)和语言库,默认有英文的语言库只能识别英文,所以还需要下载中文语言库

3.02.02版 链接:http://pan.baidu.com/s/1c2zNZhQ 密码:37uc

4.00.00版 链接:http://pan.baidu.com/s/1eRLOvAU 密码:ywgs 安装

description

检测

description

安装语言库

语言库 https://github.com/tesseract-ocr/tessdata/tree/3.04.00

语言库 https://github.com/tesseract-ocr/tessdata

chi_sim.traineddata 就是中文简体语言库

下载拷贝到 tesseract-ocr安装目录tessdata文件夹下面就行了

description

安装pytesseract

pip install pytesseract 

或者

git clone git@github.com:madmaze/pytesseract.git   
python setup.py install 

test.png

description

test-chi.jpg

description

测试脚本 test.py

try:
    import Image
except ImportError:
    from PIL import Image
import pytesseract
print(pytesseract.image_to_string(Image.open('test.png')))
print(pytesseract.image_to_string(Image.open('test-chi.jpg'), lang='chi_sim').decode('utf-8'))

description

精准度还是可以的

开始以为这个东西很好做,但当自己亲手去做的时候发现还是有很多毛病的。 未完待续。。。

0 条评论

还没有人评论。
您需要登录后才可以回复。登录 | 立即注册