详解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中的Classes和Metaclasses详解
Apr 02 Python
详解Python的单元测试
Apr 28 Python
python文件特定行插入和替换实例详解
Jul 12 Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 Python
Python中实例化class的执行顺序示例详解
Oct 14 Python
python opencv读mp4视频的实例
Dec 07 Python
用Python配平化学方程式的方法
Jul 20 Python
Python读写文件模式和文件对象方法实例详解
Sep 17 Python
Django 请求Request的具体使用方法
Nov 11 Python
浅谈keras的深度模型训练过程及结果记录方式
Jan 24 Python
python dir函数快速掌握用法技巧
Dec 09 Python
Python实现批量将文件复制到新的目录中再修改名称
Apr 12 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实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
PHP Stream_*系列函数
2010/08/01 PHP
PHP取得一个类的属性和方法的实现代码
2011/05/22 PHP
PHP数据过滤的方法
2013/10/30 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
2012/03/01 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
Node.js进阶之核心模块https入门
2018/05/23 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
python实现tail -f 功能
2020/01/17 Python
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
Python 分布式缓存之Reids数据类型操作详解
2020/06/24 Python
美国在线眼镜店:GlassesShop
2018/11/15 全球购物
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
法律专业应届本科毕业生求职信
2013/10/25 职场文书
美工的岗位职责
2013/11/14 职场文书
企业挂职心得体会
2014/09/10 职场文书
2014年乡镇领导个人整改措施
2014/09/19 职场文书
销售经理岗位职责
2015/01/31 职场文书
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技
Vue.Draggable实现交换位置
2022/04/07 Vue.js