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

本文详细介绍了在Python中安装OCR库tesserocr和pytesseract的步骤,包括tesseract的下载、环境变量配置、解决安装报错的方法,以及在PyCharm中的使用。通过实例展示了两者识别图片的效果,提醒读者虽然安装过程可能遇到挑战,但pytesseract库的使用更为简便。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tesseract的安装及配置

在python爬虫过程中,难免遇到各种各样的验证码问题,最简单的就是

f6d5b2cf865755a046302443bb30a630.png​这种验证码了,那么在遇到验证码的时候该怎么办呢?我们就需要ocr技术了,ocr-即optical character recognition光学字符识别,是指通过扫描字符,然后将其形状翻译成电子文本的过程。而tesserocr是python的一个ocr识别库,所以在安装tesserocr之前,我们需要安装tesseract这个东西

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

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

我的安装路径为:g:\program files (x86)\tesseract-ocr

3ff55e812552a9b9e3615d7bff276296.png

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

3b4354efd6398e7d4caf6726ac346906.png​的设置,这样tesseract就安装成功并配置完成了、

tesserocr库的安装

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

51cc0e36887060fd230e1b2458e30be4.png

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

下载地址:一定要下载对应版本的

653948bf13be2bd83a9ea280ceeb2fb6.png

我的是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下输入如下图:

6eec8c270063aa89420bc059865ee33b.png

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

将tesseract-ocr下的tessdata文件复制到你的python安装路径的scripts下:

eb7bbd5a5fbbb025e904d7df95c918fa.png

这样

de74707c382a3ae8fed8e8c12d420b65.png

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

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

defc8f3ac1f93297114bf8d26abe0c1d.png

66617fb504a09afaca057757e6d4b994.png

代码:

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))

输出结果如下:

74d3183829ddec0ea8496c9c3ef7326c.png

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

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

安装pytesseract库

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

cfa3dabe02c7cf43a64e20dae9d59e90.png

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

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

代码:

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))

运行结果:

aff2c762f4a41a47b81cb555e760daea.png

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

验证码识别问题

我打开知乎登录界面,下载了一张验证码图片:

efffa423e1d3c5d9a653105e2eb7c9af.png开始识别它。

代码如下:

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

table.append(0)

else:

table.append(1)

image2=image1.point(table,'1')

image2.show() #二值化灰度处理图片显示

result=pytesseract.image_to_string(image2)

print(result)

运行结果:

b48fe65061335df46d1817aa663dac1e.png​都识别失败了,,,

贼无语,但是灰度化和二值化后的图片已经很清晰了。。

1286d0c90c367c4ce213fde4ef7fe689.png

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值