详解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编程中的文件操作攻略
Oct 16 Python
Python+matplotlib绘制不同大小和颜色散点图实例
Jan 19 Python
Tensorflow卷积神经网络实例进阶
May 24 Python
python处理数据,存进hive表的方法
Jul 04 Python
Python分析彩票记录并预测中奖号码过程详解
Jul 09 Python
Python 元组操作总结
Sep 18 Python
python绘制随机网络图形示例
Nov 21 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
pytorch构建多模型实例
Jan 15 Python
TFRecord格式存储数据与队列读取实例
Jan 21 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
Mar 30 Python
python绘图pyecharts+pandas的使用详解
Dec 13 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
PHP产生随机字符串函数
2006/12/06 PHP
防止本地用户用fsockopen DDOS攻击对策
2011/11/02 PHP
解析php php_openssl.dll的作用
2013/07/01 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
angularjs select 赋值 ng-options配置方法
2018/02/28 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
vue-router beforeEach跳转路由验证用户登录状态
2018/12/26 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
在Pycharm中调试Django项目程序的操作方法
2019/07/17 Python
python多进程并行代码实例
2019/09/30 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
函数指针的定义是什么
2016/08/14 面试题
优秀毕业生推荐信
2013/11/02 职场文书
入团者的自我评价分享
2013/12/02 职场文书
简历里的自我评价范文
2014/02/24 职场文书
护士毕业实习感言
2014/03/05 职场文书
四年级评语大全
2014/04/21 职场文书
升职演讲稿范文
2014/05/23 职场文书
家长会标语
2014/06/24 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
课程设计的心得体会
2014/09/03 职场文书
python中urllib包的网络请求教程
2022/04/19 Python