无论是是自动化登录还是爬虫,总绕不开验证码,这次就来谈谈python中光学识别验证码模块tesserocrpytesseracttesserocrpytesseract是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识别验证码相关推荐

  1. 利用机器学习识别验证码(从0到1)

    最近喜欢先把测试结果图放前面.大家可以先看下效果. 识别速度并不是很快,代码并没有进一步优化. 本篇主要讲的是 从制作验证码开始,到我们利用机器学习识别出来结果的过程. 利用机器学习识别验证码的思路是 ...

  2. Python Tesseract识别验证码

    学习记录, 仅供参考 文章目录 准备工作 tesseract初试 下载样本 图片降噪 tesseract初训练 tesseract样本训练 测试训练结果 我们在写爬虫的时候经常遇到网页需要登陆的情况, ...

  3. python 基于机器学习识别验证码

    1.背景     验证码自动识别在模拟登陆上使用的较为广泛,一直有耳闻好多人在使用机器学习来识别验证码,最近因为刚好接触这方面的知识,所以特定研究了一番.发现网上已有很多基于machine learn ...

  4. python 利用random生成验证码与MD5码加密过程

    python 利用random生成随机数 #!usr/bin/env python #_*_ coding:utf-8 _*_import randomprint('随机整成range(1,5)之间的 ...

  5. python神经网络库识别验证码_基于TensorFlow 使用卷积神经网络识别字符型图片验证码...

    本项目使用卷积神经网络识别字符型图片验证码,其基于TensorFlow 框架.它封装了非常通用的校验.训练.验证.识别和调用 API,极大地减低了识别字符型验证码花费的时间和精力. 项目地址:http ...

  6. Python 利用opencv识别某象旋转验证码,识别率达95%以上

    本期介绍某象旋转验证码识别,识别的思想其实与上篇文章识别滑动还原验证码相似,也是借鉴过来的,但是旋转验证码更加复杂,实现起来稍加困难,下面来看一下,原始数据集和识别之后数据集. 原始数据集: 将圆图旋 ...

  7. 自动化测试识别验证码方法

    在进行自动化测试,我发现很多人卡在验证码无法是识别的路上,往往都是需要开发提供万能码或者取消验证码,但是有的时候需要真实场景模拟,验证码的获取就比较困难,今天分享一个自己亲测的UI自动化测试登陆时验证 ...

  8. Python验证码识别:利用pytesser识别简单图形

    一.探讨 识别图形验证码可以说是做爬虫的必修课,涉及到计算机图形学,机器学习,机器视觉,人工智能等等高深领域-- 简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形.以及利用计算机进行 ...

  9. python 识别图片中的中文_Python中利用Tesseract软件来识别图片中的英文与中文

    OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...

  10. python图片显示英文字符_Python中利用Tesseract软件来识别图片中的英文与中文

    OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...

最新文章

  1. Gson应用:利用map和list来拼装Json消息
  2. SQL SERVER 2008的SQLCMD模式
  3. python urllib.request 爬虫 数据处理-python爬虫 urllib模块url编码处理详解
  4. VTK:Video之OggTheora
  5. 结合JDK源码看设计模式——桥接模式
  6. PyCharm 通过Github和Git上管理代码
  7. java继承中的 equals + hashCode+toString
  8. 为什么有了接口还要增加一层抽象类?
  9. 控制台程序转化为windows服务
  10. 分享一年定级资深前端,与你分享他的完整学习过程
  11. 高级着色语言HLSL入门(3)
  12. 在IDEA中Java项目如何创建测试类(Junit测试工具)
  13. 图片和视频的相互转换
  14. 多功能科学计算机.,科学计算器多功能版
  15. ArcGIS简单出图
  16. 三分钟带你了解,什么是地理信息系统(GIS)
  17. 研华电脑510上电自启_研华工控机BIOS设置通电自启动方法技巧
  18. 如何注册登录Google浏览器
  19. 如何快速一次性卸载所有python包(第三方库)呢
  20. java毕业生设计贝儿米幼儿教育管理系统计算机源码+系统+mysql+调试部署+lw

热门文章

  1. 架构整洁之道:优秀设计或多余,有效设计最可取
  2. 博文视点大讲堂第33期
  3. 元编程的思想是一种新的编程细想吗
  4. 损失函数、tensorflow2实现——Python实战
  5. C语言:指向指针的指针
  6. Linux格式化为物理卷,使用linux的pvs命令格式化输出物理卷信息报表
  7. java面试突击第一季 github,Github上星标77.6K+Java面试突击版笔记在咸鱼被疯传,太香了...
  8. jquery程序 windows移植到linux显示不了,Windows10 + WSL 使用Linux图形界面程序
  9. React antd 使用类式组件 对表单数据域进行控制 this.formRef.current.setFieldsValue
  10. RestFul 风格规范