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

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

off999 2024-10-29 14:57 50 浏览 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

参考链接:

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

相关推荐

安全教育登录入口平台(安全教育登录入口平台官网)

122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...

大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)

大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...

谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)

要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...

2026-02-04 09:03 off999

电信宽带测速官网入口(电信宽带测速官网入口app)

这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...

植物大战僵尸95版手机下载(植物大战僵尸95 版下载)

1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...

免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)

1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...

2025世界杯赛程表(2025世界杯在哪个国家)

2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...

下载搜狐视频电视剧(搜狐电视剧下载安装)

搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...

pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
永久免费听歌网站(丫丫音乐网)

可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...

音乐格式转换mp3软件(音乐格式转换器免费版)

有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...

电子书txt下载(免费的最全的小说阅读器)

1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...

最好免费观看高清电影(播放免费的最好看的电影)

在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...

孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)

要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...

取消回复欢迎 发表评论: