详解Python安装tesserocr遇到的各种问题及解决办法


Posted in Python onMarch 07, 2019

Tesseract的安装及配置

在Python爬虫过程中,难免遇到各种各样的验证码问题,最简单的就是详解Python安装tesserocr遇到的各种问题及解决办法​这种验证码了,那么在遇到验证码的时候该怎么办呢?我们就需要OCR技术了,OCR-即Optical Character Recognition光学字符识别,是指通过扫描字符,然后将其形状翻译成电子文本的过程。而tesserocr是Python的一个OCR识别库,所以在安装tesserocr之前,我们需要安装tesseract这个东西

下载地址:https://digi.bib.uni-mannheim.de/tesseract/可以选择下载不带dev的稳定版本,我下载的是3.05.01版本的,不过这个版本的可能比较早了,识别能力不是很厉害,读者可以选择下载最新版本的3.05.02,识别能力应该会好很多。

下载完就是一路双击,在最后的Additional Language data(download)选上这个选项,是OCR支持各种语言的包,然后继续安装,直到安装成功。

我的安装路径为:G:\Program Files (x86)\Tesseract-OCR

详解Python安装tesserocr遇到的各种问题及解决办法

安装完成后就得需要配置环境变量,打开环境变量设置,在path中加入如下

详解Python安装tesserocr遇到的各种问题及解决办法​的设置,这样tesseract就安装成功并配置完成了、

tesserocr库的安装

刚开始我直接在cmd下输入 pip install tesserocr 很不幸报错了,报错类似于如下。。。因为之前我的报错,没有截图。所以。。

详解Python安装tesserocr遇到的各种问题及解决办法

就是类似于这种的截图,这该怎么办,难道要去下载visual C++吗?我们有更好的解决方法,下载对应的.whl文件

下载地址:https://github.com/simonflueckiger/tesserocr-windows_build/releases一定要下载对应版本的

详解Python安装tesserocr遇到的各种问题及解决办法

我的是3.5.1,所以我下载的是这个版本的。读者可以自行选择。

我的tesserocr-2.2.2-cp36-cp36m-win_amd64.whl文件下载在G盘根目录下,然后在cmd里输入 pip install G:\tesserocr-2.2.2-cp36-cp36m-win_amd64.whl 开始安装whl文件,发现报错了。提示不能安装whl文件。。原来是没有安装wheel。

然后我就去安装了wheel 直接 pip install wheel即可。

安装成功 在输入pip install G:\tesserocr-2.2.2-cp36-cp36m-win_amd64.whl 发现开始安装了。

哎心累啊,总算弄好了。但是,我在pycharm中调用tesserocr 这个库,他又提示报错了,这是为什么呢?百度了一下最终解决。

原来需要在pycharm下的terrminal下输入如下图:

详解Python安装tesserocr遇到的各种问题及解决办法

如果报错了还得有一步操作。

将Tesseract-OCR下的tessdata文件复制到你的Python安装路径的scripts下:

详解Python安装tesserocr遇到的各种问题及解决办法

这样

详解Python安装tesserocr遇到的各种问题及解决办法

这下应该就彻底安装成功了。。

这下在pycharm里总算不会报错了,我们来试一下识别这两张图片的效果

详解Python安装tesserocr遇到的各种问题及解决办法

详解Python安装tesserocr遇到的各种问题及解决办法

代码:

from PIL import Image
import tesserocr

imag=Image.open('test.jpg')
print(tesserocr.image_to_text(imag))
imag1=Image.open('image.png')
print(tesserocr.image_to_text(imag1))

输出结果如下:

详解Python安装tesserocr遇到的各种问题及解决办法

将762408识别成了162408 我也很无奈呀。。。可能是因为版本太菜了吧

以上就是我安装tesserocr遇到的问题及解决办法了。其实还可以装pytesseract这个库。

安装pytesseract库

安装这个pytesseract库可比tesserocr方便多了,根本不会报错,直接pip install pytesseract 完事。。pycharm直接搜索库

详解Python安装tesserocr遇到的各种问题及解决办法

然后下载就完事,多省事。。。。

看一下识别效果,还是同样的两张图片。

代码:

import pytesseract
from PIL import Image
import tesserocr

im=Image.open('test.jpg')
print(pytesseract.image_to_string(im))
im1=Image.open('image.png')
print(pytesseract.image_to_string(im1))

运行结果:

详解Python安装tesserocr遇到的各种问题及解决办法

运行结果一样的,所以我推荐大家使用pytesseract这个库。

验证码识别问题

我打开知乎登录界面,下载了一张验证码图片:详解Python安装tesserocr遇到的各种问题及解决办法开始识别它。

代码如下:

import pytesseract
from PIL import Image
import tesserocr



#简单验证 特别垃圾
image=Image.open('3.jpg')
result=tesserocr.image_to_text(image)
print(result)


#完全验证 也不咋地。。
image1=Image.open('3.jpg')
image1=image1.convert('L')
threshold=127
table=[]
for i in range(256):
 if i <threshold:
  table.append(0)
 else:
  table.append(1)
image2=image1.point(table,'1')
image2.show() #二值化灰度处理图片显示
result=pytesseract.image_to_string(image2)
print(result)

运行结果:

详解Python安装tesserocr遇到的各种问题及解决办法​都识别失败了,,,

贼无语,但是灰度化和二值化后的图片已经很清晰了。。详解Python安装tesserocr遇到的各种问题及解决办法

我都能看出来是H83G了,你识别个H535是个什么鬼。。综上,这个库吧,可能效果也不是那么好。先凑活用吧。。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python操作数据库之sqlite3打开数据库、删除、修改示例
Mar 13 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
python爬虫之模拟登陆csdn的实例代码
May 18 Python
解决pycharm界面不能显示中文的问题
May 23 Python
Pandas:DataFrame对象的基础操作方法
Jun 07 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
python实现的分析并统计nginx日志数据功能示例
Dec 21 Python
解决Python发送Http请求时,中文乱码的问题
Apr 30 Python
基于django和dropzone.js实现上传文件
Nov 24 Python
Flask-SocketIO服务端安装及使用代码示例
Nov 26 Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 Python
OpenCV-Python实现人脸美白算法的实例
Jun 11 Python
Python3实现的判断环形链表算法示例
Mar 07 #Python
浅析Python 读取图像文件的性能对比
Mar 07 #Python
python try 异常处理(史上最全)
Mar 07 #Python
通过shell+python实现企业微信预警
Mar 07 #Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 #Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 #Python
Python二叉树的镜像转换实现方法示例
Mar 06 #Python
You might like
PHP出错界面
2006/10/09 PHP
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
php编程每天必学之表单验证
2016/03/01 PHP
php 常用的系统函数
2017/02/07 PHP
PHP开发实现微信退款功能示例
2017/11/25 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
vue router 通过路由来实现切换头部标题功能
2019/04/24 Javascript
JS实现音乐导航特效
2020/01/06 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
Python 正则表达式入门(中级篇)
2016/12/07 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
Python PyQt5标准对话框用法示例
2017/08/23 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
高中生期末评语
2014/01/28 职场文书
企业人事任命书
2014/06/05 职场文书
保卫工作个人总结
2015/03/03 职场文书
教师求职自荐信范文
2015/03/04 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
起诉意见书范文
2015/05/19 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
浅谈Python中的正则表达式
2021/06/28 Python