python利用Tesseract识别验证码
无论是是自动化登录还是爬虫,总绕不开验证码,这次就来谈谈python中光学识别验证码模块
tesserocr
和pytesseract
。tesserocr
和pytesseract
是Python的一个OCR识别库,但其实是对tesseract
做的一层Python API封装,pytesseract
是Google的Tesseract-OCR
引擎包装器;所以它们的核心是tesseract
,因此在安装tesserocr
之前,我们需要先安装tesseract
。
下载安装
下载地址:https://digi.bib.uni-mannheim...
下载完成后,双击安装,可以勾选Additional language data(download)
选项来安装OCR识别支持的语言包,但下载语言包实在是慢,我们可以直接从https://github.com/tesseract-... 下载zip的语言包压缩文件,解压后将tessdata-master
中的文件复制到Tesseract
的安装目录C:\Program Files (x86)\Tesseract-OCR\tessdata
目录下,最后我们配置下环境变量,我们将C:\Program Files (x86)\Tesseract-OCR
添加到环境变量中。进入命令提示符,输入tesseract
,显示下图结果,说明配置完成
查看安装了的语言包:tesseract --list-langs
显示我一共安装了167种语言包,里边包含英文或者其他字符。
测试
实验用的二维码
基本使用语法
tesseract image.png result
(tesseract 图片名称 生成文件名称)
结果
由结果来看,识别出来了P、2和X,但是把C识别成了G,识别度还是比较高,接下来看在python中的使用
python引入tesseract
在python下使用pip命令即可完成下载安装 pip install pytesseract
识别验证码脚本
import pytesseract
from PIL import Imageim=Image.open('pin.png')
print(pytesseract.image_to_string(im))
结果
这样识别的结果同样跟上文一样,个别字符识别的不是很准确
图像处理
现在网站上的二维码设计的通常很难复杂,如果直接识别的话很难识别出来,下面这段代码是进行灰度处理和二值化
import pytesseract
from PIL import Imageim=Image.open('5.jpg')
#进行置灰处理
im=im.convert('L')
#这个是二值化阈值
threshold=150
table=[]
for i in range(256):if i<threshold:table.append(0)else:table.append(1)
#通过表格转换成二进制图片,1的作用是白色,0就是黑色
im=im.point(table,"1")
im.show()
print(pytesseract.image_to_string(im))
原图
置灰和二值化后
想要提高识别率只能下载训练好的语言包,如上述所说,或者用深度学习的方法训练机器
原文地址:https://nolon.xyz/archives/77/
python利用Tesseract识别验证码相关推荐
- 利用机器学习识别验证码(从0到1)
最近喜欢先把测试结果图放前面.大家可以先看下效果. 识别速度并不是很快,代码并没有进一步优化. 本篇主要讲的是 从制作验证码开始,到我们利用机器学习识别出来结果的过程. 利用机器学习识别验证码的思路是 ...
- Python Tesseract识别验证码
学习记录, 仅供参考 文章目录 准备工作 tesseract初试 下载样本 图片降噪 tesseract初训练 tesseract样本训练 测试训练结果 我们在写爬虫的时候经常遇到网页需要登陆的情况, ...
- python 基于机器学习识别验证码
1.背景 验证码自动识别在模拟登陆上使用的较为广泛,一直有耳闻好多人在使用机器学习来识别验证码,最近因为刚好接触这方面的知识,所以特定研究了一番.发现网上已有很多基于machine learn ...
- python 利用random生成验证码与MD5码加密过程
python 利用random生成随机数 #!usr/bin/env python #_*_ coding:utf-8 _*_import randomprint('随机整成range(1,5)之间的 ...
- python神经网络库识别验证码_基于TensorFlow 使用卷积神经网络识别字符型图片验证码...
本项目使用卷积神经网络识别字符型图片验证码,其基于TensorFlow 框架.它封装了非常通用的校验.训练.验证.识别和调用 API,极大地减低了识别字符型验证码花费的时间和精力. 项目地址:http ...
- Python 利用opencv识别某象旋转验证码,识别率达95%以上
本期介绍某象旋转验证码识别,识别的思想其实与上篇文章识别滑动还原验证码相似,也是借鉴过来的,但是旋转验证码更加复杂,实现起来稍加困难,下面来看一下,原始数据集和识别之后数据集. 原始数据集: 将圆图旋 ...
- 自动化测试识别验证码方法
在进行自动化测试,我发现很多人卡在验证码无法是识别的路上,往往都是需要开发提供万能码或者取消验证码,但是有的时候需要真实场景模拟,验证码的获取就比较困难,今天分享一个自己亲测的UI自动化测试登陆时验证 ...
- Python验证码识别:利用pytesser识别简单图形
一.探讨 识别图形验证码可以说是做爬虫的必修课,涉及到计算机图形学,机器学习,机器视觉,人工智能等等高深领域-- 简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形.以及利用计算机进行 ...
- python 识别图片中的中文_Python中利用Tesseract软件来识别图片中的英文与中文
OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...
- python图片显示英文字符_Python中利用Tesseract软件来识别图片中的英文与中文
OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...
最新文章
- Gson应用:利用map和list来拼装Json消息
- SQL SERVER 2008的SQLCMD模式
- python urllib.request 爬虫 数据处理-python爬虫 urllib模块url编码处理详解
- VTK:Video之OggTheora
- 结合JDK源码看设计模式——桥接模式
- PyCharm 通过Github和Git上管理代码
- java继承中的 equals + hashCode+toString
- 为什么有了接口还要增加一层抽象类?
- 控制台程序转化为windows服务
- 分享一年定级资深前端,与你分享他的完整学习过程
- 高级着色语言HLSL入门(3)
- 在IDEA中Java项目如何创建测试类(Junit测试工具)
- 图片和视频的相互转换
- 多功能科学计算机.,科学计算器多功能版
- ArcGIS简单出图
- 三分钟带你了解,什么是地理信息系统(GIS)
- 研华电脑510上电自启_研华工控机BIOS设置通电自启动方法技巧
- 如何注册登录Google浏览器
- 如何快速一次性卸载所有python包(第三方库)呢
- java毕业生设计贝儿米幼儿教育管理系统计算机源码+系统+mysql+调试部署+lw
热门文章
- 架构整洁之道:优秀设计或多余,有效设计最可取
- 博文视点大讲堂第33期
- 元编程的思想是一种新的编程细想吗
- 损失函数、tensorflow2实现——Python实战
- C语言:指向指针的指针
- Linux格式化为物理卷,使用linux的pvs命令格式化输出物理卷信息报表
- java面试突击第一季 github,Github上星标77.6K+Java面试突击版笔记在咸鱼被疯传,太香了...
- jquery程序 windows移植到linux显示不了,Windows10 + WSL 使用Linux图形界面程序
- React antd 使用类式组件 对表单数据域进行控制 this.formRef.current.setFieldsValue
- RestFul 风格规范