百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python 机器学习 识别验证码 来个'沃贝'自动签到(1: 图像处理)

off999 2024-10-29 14:57 31 浏览 0 评论

前言叨B叨

我不知道有多少同学知道沃贝,用联通的同学也不见得都知道, 因为我也是后来别人科普给我才知道联通旗下有这么个网站, 每天签到,一个月到头可以得950M流量. 对于我这种14块月租套餐的用户来说,还是很不错的福利. 但是, 问题来了, 每天签到, 很烦躁的说, 于是就想着做个自动签到, 顺便以 python 机器学习 的名义, 废话路上说, 来不及了, 快上车!

如下图所示, 验证码识别一般分为如下几个步骤, 今天我们主要说下红框部分, 图像采集和处理.

一. 采集图像

  1. 先去到网站上的登录窗口, 找到二维码的地址, 然后写个循环把图片下载下来做样本, 多多益善,我这只下了50张.

  2. 在截图中可以看到, 这个验证码还不是个一般的验证码, 是个二般的. 特征为: 纯数字, 字体有旋转, 背景有杂色, 还有干扰线. 所有这些特征, 除了纯数字以外, 全部是来阻止程序自动识别的绊脚石. 接下来, 我们就来一步一步地扫清障碍, 还我4个清纯的数字s.

二.图像处理

  1. 处理图像之前, 先把pillow装上:

pip install pillow

2. 首先来灰度化,二值化, 就是把背景杂色过滤掉变得非黑即白.这里的阈值设置的是170, 可根据不同的验证码设置不同的值.

然后图像会变成这样:

3. 接下来去噪. 这个去噪不比ps里, 用橡皮擦擦就没了, 里面还是有些门道(算法)的. 比如[邻域像素算法]:

即对于像素值>245的邻域像素,判别为属于背景色,如果一个像素上下左右4各像素值有超过2个像素属于背景色,那么该像素就是噪声。这里还需要考虑到边界问题.

去噪后, 效果如下图. 对于以上邻域算法仅仅是针对像素为1的干扰线, 对于像素大于一的干扰线没做处理. 不过这个对于机器学习的话问题不大, 因为我们最后生成的样本会有很多种类, 然后让程序去推测当前识别的对象的可信度.

4. 接下来应该是切割验证码(开始那个流程图感觉不太对, 应该是先分割后再校正倾斜度)

切割验证码用的是投影算法, 即坐标从上到下, 从左到右遍历, 如果发现是空白,就跳过,直到扫描到像素值为255的点,开始输出, 输出到纵坐标上没有像素值为255的点,如下图所示:

相关代码呢, 太长了, 贴上来估计你也不愿意看. 我在后面把所有代码上传到GitHub(地址附在文章底部), 大家有兴趣就down下来研究研究.

5. 校正倾斜度, 然后重新调整大小. 校正倾斜度这里用的是旋转卡壳算法, 如下图所示, 当两条平行线之间的举例最短的时候, 就认为是字符正确的方向.

代码如下:

这里在旋转的时候是从-60度到60度, 是依据当前验证码倾斜规律设定的. 调整完后效果如图. 可以发现有些字符并不是很正, 但是将就吧

其实如果是用机器学习的去识别字符的话, 校正倾斜度可做可不做, 因为机器学习是靠大量样本来对比识别的, 如果你的歪歪扭扭的样本足够多, 一样可以识别.

6. 归一化. 把以上的几个步骤写到一个循环里, 跑他个N遍, 这时候, 我们就有了好多好多的数字图片, 这时苦力活来了...我们需要将每张数字图片归类, 在本地创建0-9十个文件夹, 将数字图片按显示值放入相应的文件夹里.

其实这里在我们校正倾斜度的时候可以先使用tesseract先识别一下数字, 然后将其存放在相应文件夹里, 这样可以减轻一部分工作量, 但是有时候识别的不准确,或者是无法识别, 所以还得我们手工去检查一下.

pip install pytessearct


Pytessearct说明:

a、Python-tesseract是一个基于google's Tesseract-OCR的独立封装包;

b、Python-tesseract功能是识别图片文件中文字,并作为返回参数返回识别结果;

c、Python-tesseract默认支持tiff、bmp格式图片,只有在安装PIL之后,才能支持jpeg、gif、png等其他图片格式;

使用如下python 语句识别字符后,存入对应文件夹

recNum = pytesseract.image_to_string(cur_img,config='-psm 10 outputbase digits')

最后整理完揍是这个样子

结语

至此, 识别验证码的第一部分港完了, 得到了一堆小小的数字图片.

后面将会进一步讲讲验证码识别部分. 敬请期待.

说好的GitHub链接

https://github.com/shark526/WowSign

参考链接:

抱歉此处用了截图, 因为太多链接会被和谐,文章都发布不了

相关推荐

戴尔官网保修查询入口(戴尔售后保质期查询)

可以按照以下步骤查询戴尔笔记本电脑的保修期:1.打开戴尔官网:https://www.戴尔.com/zh-cn/售后服务/保修政策.html2.点击页面上方的“服务与支持”按钮,进入戴尔的服务支持...

手机号邮箱登录入口(手机号邮箱官网)

手机163邮箱登录入口如下:163邮箱官网入口:https://smart.mail.163.com/login.htm点击进入登录或者注册邮箱即可。手机浏览器访问进入官网http://www.123...

sd卡(sd卡无法读取怎么修复)

  SD卡是大卡,相机用的;普通的手机内存卡,是小卡,正规的名称是macrosd卡,也就是微型SD卡。可以通过卡套转为普通的SD卡的大小。  其实就是大小不同。但手机上的内存卡,人们经常也俗称为SD...

路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
windows7蓝牙功能在哪里打开

点击搜索框在windows7系统主界面点击开始菜单,点击打开搜索框。输入命令输入services.msc后回车,在列表中找到并右击BluetoothSupportS...点击属性选择进入属性菜单,...

2010激活密钥(microsoft2010激活密钥)
2010激活密钥(microsoft2010激活密钥)

步骤/方式1officeprofessionalplus2010:(office专业版)6QFdx-pYH2G-ppYFd-C7RJM-BBKQ8Bdd3G-xM7FB-Bd2HM-YK63V-VQFdKVYBBJ-TRJpB-QFQ...

2025-11-19 04:03 off999

联想官方刷新bios工具(联想电脑刷新bios)

刷新BIOS需要使用联想的官方网站或授权维修中心来进行操作。以下是一些基本步骤:1.访问联想的官方网站,找到BIOS更新程序并下载。在下载过程中,请确保选择与您计算机型号匹配的版本。2.将下载的B...

苹果ios14系统下载(苹果ios14.1下载)
苹果ios14系统下载(苹果ios14.1下载)

1方法一步骤/方式一打开Appstore。步骤/方式二在搜索栏点击搜索框。步骤/方式三搜索并点击需要下载的软件。步骤/方式四点击获取。步骤/方式五最后验证ID密码即可。1.在应用商店搜索你要下载的应用名称。2.点击下载按钮,如果要求登...

2025-11-19 03:03 off999

office2010怎么免费永久激活密钥

用这个试试,一个KMS激活工具可以激活2010到2019的Office自家的目前用的就是这个microsoft6477.moe/1716.html直接使用这个Microsoftoffice2010...

类似爱加速的国内ip(类似爱加速的app)
类似爱加速的国内ip(类似爱加速的app)

推荐“V8盒子”。这一款免费无广告的模拟器,不同于其它软件盒子,而是类似于X8沙箱,满足游戏多开,画中画,悬浮球操作,熄屏后台运行等多功能的沙箱盒子.支持一键root,一键安装xposed框架,能在安卓/苹果手机上运行多个安卓/ios虚拟系...

2025-11-19 02:03 off999

阿里旺旺手机客户端(阿里旺旺手机app)

手机淘宝的旺旺在打开商品后,会看到左下角有个旺旺的图标,点击就可以联系了。  阿里旺旺是将原先的淘宝旺旺与阿里巴巴贸易通整合在一起的一个新品牌。它是淘宝和阿里巴巴为商人量身定做的免费网上商务沟通软件,...

最纯净的pe装机工具(pe工具哪个纯净)

U盘装系统步骤:1.制作U盘启动盘。这里推荐大白菜U盘启动盘制作工具,在网上一搜便是。2.U盘启动盘做好了,我们还需要一个GHOST文件,可以从网上下载一个ghost版的XP/WIN7/WIN8系统,...

装一个erp系统多少钱(wms仓库管理软件)

现在主流有客户端ERP和云端ERP两种客户端通常一次买断,价格在万元左右,但是还有隐性费用,你需要支付服务器、数据管理员,此外如果系统需要更新维护,你还需要支付另外一笔不菲的费用。云端ERP:优势...

cad2014序列号和密钥永久(autocad2014序列号和密钥)

1在cad2014中修改标注样式后,需要将其保存2单击“样式管理器”按钮,在弹出的窗口中选择修改后的标注样式,然后单击“设置为当前”按钮,再单击“保存当前样式”按钮,将其保存为新的样式名称3为了...

qq修改密保手机号(qq修改密保手机号是什么意思)

QQ更改绑定的手机号码操作步骤如下:1、打开手机主界面,找到“QQ”软件点击打开。2、输入正确的QQ账户和密码登录到qq主界面。3、点击左上角的头像“图片”,进入到个人中心界面。4、进入到个人中心界面...

取消回复欢迎 发表评论: