python本地ocr库(详解Python安装tesserocr遇到的各种问题及解决办法)
python本地ocr库
详解Python安装tesserocr遇到的各种问题及解决办法tesseract的安装及配置
在python爬虫过程中,难免遇到各种各样的验证码问题,最简单的就是这种验证码了,那么在遇到验证码的时候该怎么办呢?我们就需要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
安装完成后就得需要配置环境变量,打开环境变量设置,在path中加入如下
的设置,这样tesseract就安装成功并配置完成了、
tesserocr库的安装
刚开始我直接在cmd下输入 pip install tesserocr 很不幸报错了,报错类似于如下。。。因为之前我的报错,没有截图。所以。。
就是类似于这种的截图,这该怎么办,难道要去下载visual c++吗?我们有更好的解决方法,下载对应的.whl文件
下载地址:https://github.com/simonflueckiger/tesserocr-windows_build/releases 一定要下载对应版本的
我的是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下输入如下图:
如果报错了还得有一步操作。
将tesseract-ocr下的tessdata文件复制到你的python安装路径的scripts下:
这样
这下应该就彻底安装成功了。。
这下在pycharm里总算不会报错了,我们来试一下识别这两张图片的效果
代码:
|
from pil import image import tesserocr imag = image. open ( 'test.jpg" alt="python本地ocr库(详解Python安装tesserocr遇到的各种问题及解决办法)" border="0" /> print (tesserocr.image_to_text(imag)) imag1 = image. open ( 'image.jpg" alt="python本地ocr库(详解Python安装tesserocr遇到的各种问题及解决办法)" border="0" /> print (tesserocr.image_to_text(imag1)) |
输出结果如下:
将762408识别成了162408 我也很无奈呀。。。可能是因为版本太菜了吧
以上就是我安装tesserocr遇到的问题及解决办法了。其实还可以装pytesseract这个库。
安装pytesseract库
安装这个pytesseract库可比tesserocr方便多了,根本不会报错,直接pip install pytesseract 完事。。pycharm直接搜索库
然后下载就完事,多省事。。。。
看一下识别效果,还是同样的两张图片。
代码:
|
import pytesseract from pil import image import tesserocr im = image. open ( 'test.jpg" alt="python本地ocr库(详解Python安装tesserocr遇到的各种问题及解决办法)" border="0" /> print (pytesseract.image_to_string(im)) im1 = image. open ( 'image.jpg" alt="python本地ocr库(详解Python安装tesserocr遇到的各种问题及解决办法)" border="0" /> print (pytesseract.image_to_string(im1)) |
运行结果:
运行结果一样的,所以我推荐大家使用pytesseract这个库。
验证码识别问题
我打开知乎登录界面,下载了一张验证码图片:开始识别它。
代码如下:
|
import pytesseract from pil import image import tesserocr #简单验证 特别垃圾 image = image. open ( '3.jpg" alt="python本地ocr库(详解Python安装tesserocr遇到的各种问题及解决办法)" border="0" /> result = tesserocr.image_to_text(image) print (result) #完全验证 也不咋地。。 image1 = image. open ( '3.jpg" alt="python本地ocr库(详解Python安装tesserocr遇到的各种问题及解决办法)" border="0" /> 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) |
运行结果:
都识别失败了,,,
贼无语,但是灰度化和二值化后的图片已经很清晰了。。
我都能看出来是h83g了,你识别个h535是个什么鬼。。综上,这个库吧,可能效果也不是那么好。先凑活用吧。。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://www.cnblogs.com/yuxuanlian/p/10122702.html
- python中的变量与变量类型(Python变量类型知识点总结)
- python找到连续不重复最长英文串(Python实现简单查找最长子串功能示例)
- vscode如何配置python环境(VSCode Python开发环境配置的详细步骤)
- python中if判断数据类型(基于python if 判断选择结构的实例详解)
- python读写文件实验心得(Python文件读写常见用法总结)
- pythonmatplotlib绘制立体图形(python3使用matplotlib绘制散点图)
- python报表可视化(使用Python快速制作可视化报表的方法)
- python改变图片的色深设置(Python实现去除图片中指定颜色的像素功能示例)
- python 正则表达式菜鸟教程(详解Python正则表达式re模块)
- python用列表实现一个定时器(python 定时器,实现每天凌晨3点执行的方法)
- python线程安全队列(Python 限制线程的最大数量的方法Semaphore)
- python中的insert(python assert的用处示例详解)
- python设置按钮(Python按钮的响应事件详解)
- python如何用md5作为文档名(Python生成MD5值的两种方法实例分析)
- python中导入模块的命令(Python3 导入上级目录中的模块实例)
- python在txt指定行添加文本(Python修改文件往指定行插入内容的实例)
- 冰岛旅游攻略(冰岛旅游攻略及花费)
- 为什么现在年轻人越来越喜欢买衣服(为什么现在年轻人越来越喜欢买衣服穿)
- 怎么做好SEO(怎么做好seo内容优化)
- 冬季钓鱼子线用 长 还是 短(冬季钓鱼子线用)
- 鱼竿 夏钓短,冬钓长 ,一定是这样 认清优缺点在选竿(鱼竿夏钓短冬钓长)
- 鲢鳙钓底还是钓浮 流水的水域应怎样做钓(鲢鳙钓底还是钓浮)
热门推荐
- mac的mysql连接问题如何解决(MAC 中mysql密码忘记解决办法)
- Visual studio中使用VSCommands插件在大括号尾部显示方法或过程名字
- 常见的php五大运行模式详解(php设计模式之职责链模式定义与用法经典示例)
- nginx如何配置php项目(Nginx服务器究竟是怎么执行PHP项目)
- dockerswarm滚动部署(使用Docker部署war包项目的实现)
- vue3.0 如何使用useroute(详解vue3中setUp和reactive函数的用法)
- js网页截图(JS如何实现页面截屏功能实例代码)
- phpstorm代码模板(phpStorm+XDebug+chrome 配置详解)
- python撤回的微信消息怎么看(Python实现微信消息防撤回功能的实例代码)
- 参加笔试前需要做哪些准备
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9