验证码识别之OCR识别

news2024/11/27 20:36:45

验证码识别:

背景:

​ 决定开一个专题给大家讲一下验证码识别,不要多想,我们不搞深度学习,知识用于攻破模拟登录的时候弹出的验证码,后续会给大家讲讲滑块等等,反爬虫策略如何应对。

好了,言归正传,目前市面上的验证码识别主要是:

  • OCR识别 但是可能准确率不高
  • 各种打码平台
  • opencv
  • 深度学习模型
环境安装:

首先需要安装一个软件,我们可以理解为驱动 Home · UB-Mannheim/tesseract Wiki (github.com),然后根据你的机器是32还是64傻瓜式安装即可。

在这里插入图片描述

然后配置一下环境变量:

安装完后,需要将Tesseract添加到系统变量中。
  环境变量: 我的电脑 ->属性 -> 高级系统设置 ->环境变量 ->系统变量 ,在 path 中添加 安装路径。

在这里插入图片描述

在这里插入图片描述

然后打开cmd输入:

tesseract -v

然后出现版本就说明配置成功了!

在这里插入图片描述

然后需要安装两个python的外部库:

pip install pillow
pip install pytesseract
# 或者 
conda install pillow
conda  install pytesseract
OCR代码实现:

找一张图片去试试!我们平时模拟登录的时候一般是讲图片爬取到本地然后进行识别,然后调用识别后的值.

在这里插入图片描述

上代码:

import pytesseract
from PIL import Image
img = Image.open("./code.jpg")
text = pytesseract.image_to_string(img, lang='eng') # lang='eng' 表示将识别语言设置为英语(English) 也可以识别数字
# text = pytesseract.image_to_string(img, lang='eng+chi_sim')
print(text)

参数:

除了英语之外,pytesseract还支持其他语言的文字识别。以下是一些常见的语言参数示例:
  • 英语:lang='eng'

  • 中文简体:lang='chi_sim'

  • 中文繁体:lang='chi_tra'

  • 西班牙语:lang='spa'

  • 法语:lang='fra'

  • 德语:lang='deu'

  • 意大利语:lang='ita'

  • 日语:lang='jpn'

  • 韩语:lang='kor'

    大家可以根据需要将语言参数设置为适当的值。如果需要识别多种语言的混合文本,可以将语言参数设置为多个值,例如lang='eng+chi_sim'表示同时使用英语和中文简体进行识别。

    我们看一下识别后的结果:

在这里插入图片描述

发现不是很一样吧,因为验证码边缘模糊,像素等等原因,直接使用OCR识别验证码识别率不高,我们也不常用,大家记住,天下没有免费的午餐,接下来我们看一下中文的识别效果。

识别文本:

在这里插入图片描述

import pytesseract
from PIL import Image
img = Image.open(r"E:\OCR\img\test.jpg")
text = pytesseract.image_to_string(img, lang='eng+chi_sim')
print(text)

在这里插入图片描述

哟,识别的还不错,我们基于识别后的结果做一些字符串操作就可以准确得到啦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1218831.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何实现业务系统的单点退出

当前我国各领域正在加速向数字化、移动化、智能化发展,大力投入信息化建设与数字化转型已成为企业的共识,但对于很多企业而言,组织信息环境庞大复杂,业务场景变化频繁,给身份管理与信息安全管理带来很大挑战。随着信息…

Spring Bean的生命周期详细梳理

1. 理解Bean的生命周期 1.1 生命周期的各个阶段 在Spring IOC容器中&#xff0c;Bean的生命周期大致如下&#xff1a; 实例化&#xff1a;当启动Spring应用时&#xff0c;IOC容器就会为在配置文件中声明的每个<bean>创建一个实例。属性赋值&#xff1a;实例化后&#…

linux虚拟机环境快速搭建redis5.x版本的主从集群总结

原创/朱季谦 我在阿里云服务器上曾参与过公司redis集群的搭建&#xff0c;但时间久了&#xff0c;都快忘记当时的搭建过程了&#xff0c;故而决定在虚拟机centOS 7的环境&#xff0c;自行搭建一套redis5.x版本的集群&#xff0c;该版本集群的搭建比较方便&#xff0c;不用再像…

免费图像压缩工具分享:15 个最佳免费图像压缩工具

您想在将图像上传到网上之前对其进行压缩吗&#xff1f;优化摄影网站的图像将有助于您的网站加载速度更快。而且&#xff0c;更快的加载速度意味着更好的搜索引擎排名&#xff01;在本指南中&#xff0c;我们将分享用于图像压缩的最佳免费图像优化工具。 许多照片编辑程序&…

【网络奇遇记】我和因特网的初相遇3 —— 计算机网络体系结构

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 一. 常见的三种计算机网络体系结构1.1 开放系统互连参考模型1.2 TCP/IP参考模型1.3 原理参考模型 二…

电脑上明明保存了文件却不见了?4个恢复技巧分享!

“真的很奇怪&#xff0c;我有一些重要的文件明明保存在电脑上了&#xff0c;但是当我在电脑上查找它们时&#xff0c;却发现有很多文件都不见了。这些保存在电脑上的文件如果不见了怎么找回呢&#xff1f;” 在使用电脑过程中&#xff0c;有时我们会遇到明明保存了文件&#x…

【双向链表】带头双向循环(1)

目录 链表的分类 Test.c主函数 test1头插 test2头删 test3尾插 test4尾删 test5查询 test6插入pos位置后一个 test7删除pos Test.c总代码 DList.h头文件&函数声明 头文件 函数声明 DList.h总代码 DList.c函数实现 Createnode创建节点 LTInit初始化 LTPr…

1~2亿条数据需要缓存之安装redis集群(哈希取余分区、一致性哈希算法分区、哈希槽分区)

安装redis集群 面试题 1~2亿条数据需要缓存&#xff0c;请问如何设计这个存储案例??? 回答: 单机单台100%不可能&#xff0c;肯定是分布式存储&#xff0c;用redis如何落地&#xff1f; 上述问题阿里P6~P7工程案例和场景设计类必考题目&#xff0c; 一般业界有3种解决方案 …

STM32H743 RTC精密数字校准 深度剖析

一、问题 项目中数据报文收到的RTC时间总是会慢一些,经过实际几天的测试得出结论:24小时要慢5S左右。根据手册我了解到可以有误差但不会差这么多,所以进行了如下分析并解决问题。 二、分析 1.影响RTC准确性的因素罗列 硬件基础误差(也就是待校准部分) …

青岛数字孪生赋能工业制造,加速推进制造业数字化转型

随着企业数字化进程的推进&#xff0c;数字孪生技术逐渐在汽车行业得到广泛应用。5G与数字孪生、工业互联网的融合将加速数字中国、智慧社会建设&#xff0c;加速中国新型工业化进程&#xff0c;为中国经济发展注入新动能。数字孪生、工业物联网、工业互联网等新一代信息通信技…

【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏3(附项目源码)

文章目录 先看本次实现的最终效果前言绘制炮塔UI炮塔转向敌人生成炮弹旋转我们的子弹对敌人造成伤害&#xff0c;回收子弹自动发射子弹添加攻击间隔显示伤害字体设计通用泛型单例创建更多炮塔升级增加伤害升级缩短攻击间隔添加货币杀死敌人获取金币源码完结 先看本次实现的最终…

有趣的按钮分享

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 广告打完&#xff0c;我们进入正题&#xff0c;先看效果&#xff1a; 废话不多&#xff0c;上源码&#xff1a; <button class&quo…

牛只识别 牛脸识别 个体识别 身份识别

融合YOLOv5s与通道剪枝算法的奶牛轻量化个体识别方法 Light-weight recognition network for dairy cows based on the fusion of YOLOv5s and channel pruning algorithm 论文链接 知网链接 点击进入正文 该文章讨论了奶牛花斑、光照条件、不同剪枝方法、不同剪枝率对准确率的…

OPPO发布AndesGPT大模型;Emu Video和Emu Edit的新突破

&#x1f989; AI新闻 &#x1f680; OPPO发布全新ColorOS 14及自主训练的AndesGPT大模型 摘要&#xff1a;OPPO在2023 OPPO开发者大会上发布了全新的ColorOS 14&#xff0c;并正式推出了自主训练的安第斯大模型&#xff08;AndesGPT&#xff09;。AndesGPT拥有对话增强、个人…

Linux学习教程(第三章 Linux文件和目录管理)2

第三章 Linux文件和目录管理(初识Linux命令) 十一、Linux 删除空目录(rmdir命令) Linux rmdir命令:删除空目录 和 mkdir 命令(创建空目录)恰好相反,rmdir(remove empty directories 的缩写)命令用于删除空目录,此命令的基本格式为: [root@localhost ~]# rmdir […

应用在城市井盖积水检测中的深水液位传感芯片

城市井盖积水检测系统以实现城市下水道水雨情信息“全要素、全量程、全覆盖”自动测报为目标&#xff0c;具备下水道水位、雨量、流速、流量、雨量、气象参数、现场图像、视频等水文信息采集、传输、处理及预警等功能&#xff0c;有效提升了雨水情信息的时效性和准确度&#xf…

【Java开发的主要应用领域】

【点我-这里送书】 本人详解 作者&#xff1a;王文峰&#xff0c;参加过 CSDN 2020年度博客之星&#xff0c;《Java王大师王天师》 公众号&#xff1a;JAVA开发王大师&#xff0c;专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生&#xff0c;期待你的…

类BERT模型蒸馏实战

机器学习模型已经变得越来越大&#xff0c;以至于训练模型可能会给那些没有空闲集群的人带来痛苦。 此外&#xff0c;即使使用训练好的模型&#xff0c;当你的硬件与模型对其运行的期望不符时&#xff0c;推理的时间和内存成本也会飙升。 因此&#xff0c;为了缓解这个问题&…

idea 环境搭建及运行java后端源码

1、 idea 历史版本下载及安装 建议下载和我一样的版本&#xff0c;2020.3 https://www.jetbrains.com/idea/download/other.html&#xff0c;idea分为专业版本&#xff08;Ultimate&#xff09;和社区版本&#xff08;Community&#xff09;&#xff0c;前期可以下载专业版本…