文档章节

安装Python图像处理库PIL、pytesseract进行验证码识别

温存
 温存
发布于 2017/03/17 14:13
字数 827
阅读 1744
收藏 1

今天看见一个关于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

精准度还是可以的

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

© 著作权归作者所有

温存
粉丝 1
博文 4
码字总数 2313
作品 0
合肥
程序员
私信 提问
使用 python 识别简单验证码

概述 简介 坑! 安装 Tesseract-OCR 使用 pytesseract 识别验证码 高级玩法 - 除线 简介 首先呢,简单的验证码是这样的: 不是这样的: 这里使用了 pytesseract 来进行验证码识别,它是基于 ...

zone_
2018/08/17
0
0
深入学习使用ocr算法识别图片中文字的方法

  公司有个需求,简单点说需要从一张图片中识别出中文,通过python来实现,当然其他程序也行,只要能实现,而小编主要学习python,所以就提了python。一个小白在网上遨游了一天,终于找到一...

战争热诚
2018/08/08
0
0
python 验证码问题

tesseract-ocr-setup-3.02.02.exe 下载地址:https://sourceforge.net/projects/tesseract-ocr-alt/files/tesseract-ocr-setup-3.02.02.exe/download?usemirror=jaist&r=https%3A%2F%2Fsourc......

lweihua
2017/06/12
0
0
Python 实现识别弱图片验证码

图片来自 unsplash 目前,很多网站为了防止爬虫肆意模拟浏览器登录,采用增加验证码的方式来拦截爬虫。验证码的形式有多种,最常见的就是图片验证码。其他验证码的形式有音频验证码,滑动验证...

猴哥Yuri
2017/12/23
0
0
Python图像处理之图片验证码识别

  在上一篇博客Python图像处理之图片文字识别(OCR)中我们介绍了在Python中如何利用Tesseract软件来识别图片中的英文与中文,本文将具体介绍如何在Python中利用Tesseract软件来识别验证码...

jclian91
2018/06/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部