博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
验证码再次学习。(处理方法汇总)
阅读量:7281 次
发布时间:2019-06-30

本文共 1004 字,大约阅读时间需要 3 分钟。

预处理:

1.二值化:是图片变成只有0和255像素值得黑白图片

2.膨胀:胖一圈

3.腐蚀:瘦一圈

 

去燥:

1.噪点: 直接判断周围8个点有没有像素,没有就置为白

2.噪线:(和背景颜色不一样的噪线)用颜色不一样这点做文章,eg.噪线是绿色,验证码是黑色,则因为黑色的RGB值相差不大,但是绿色的G值比R,B值都大,所以很容易就可以去除

3.噪线:(和背景颜色差不多一样的噪线)但是噪线的所有像素点的RGB值一样,就用连通域方法用CFS将噪线颜色的连通域都染出来再去除

***个人心得:

对于去燥这一步工作,我认为还是应该对于不同的验证码有不同的造作方法,在破解的工作中要多观察图片,只要找出特点,就可以击破,不论是外观颜色上的,还是内部RGB值方面的,还是相邻像素方面的。

 

分割:

1.直接颜色填充:对于不黏连的验证码,包括注入填充区域算法,种子填充算法,扫描线填充算法,边填充算法等

2.平均切分:适用于验证码中每一个字符的大小较均匀,对于部分粘连,也可颜色填充和平均切分结合起来使用

3.投影切分法:就是在某一方向上计算每一行的像素点个数通常采用垂直投影和水平方向的投影,也可颜色填充和投影结合起来使用,投影适用于通过噪线相粘连的验证码,也就是连接处的像素点较少,若链接紧密,投影法不可行。

4.字符特征切分法:eg.8,B都是有上下两个闭环结构的字符, M在下方加上基线后有左右结构两个闭环,该方法特征难以归纳,破解过程繁琐,针对性强。

5.粘连:      单字符分割后,直接用CNN进行识别,效果较好

6.移位:  单字符分割后,直接用CNN进行识别,效果较好

7.扭曲:  单字符分割后,直接用CNN进行识别,效果较好

 

识别:

1.模板匹配:(利用一些分类器)

***KNN

***SVM

2.机器学习:

***卷积神经网络CNN

***BP神经网络:BP算法有两部分组成:信息的正向传输,误差的反向传播,在正向传播过程中信息从输入层输入,输入到某隐层,该隐层计算后将该隐层输出向后面的隐层传输,逐层传向输出层,每一层的输出作为后面隐层的输入。最后的输出层的输出结果和期望的输出比较,计算误差,在反向向前传播,通过网络将误差信号沿原来的连通通路反传回来修改各层神经元的权值直至达到期望的目标。

 

转载于:https://www.cnblogs.com/soulmate1023/p/5416363.html

你可能感兴趣的文章
Spark Pipeline
查看>>
Spark FPGrowth (Frequent Pattern Mining)
查看>>
二维vector基本使用
查看>>
节省微博互粉时间,使用全自动"一键关注"Chrome扩展程序
查看>>
iOS Getter 和Setter 注册xibcell
查看>>
安装Python的numpy库
查看>>
Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)...
查看>>
一场么有高端起来的改版~
查看>>
UI之UIImageView--属性及用法
查看>>
linux之SQL语句简明教程---COUNT
查看>>
BZOJ 2005 [Noi2010]能量採集 (容斥)
查看>>
Markov Decision Process
查看>>
实验四主存空间的分配和回收
查看>>
macOS清空字体缓存
查看>>
linux中切换用户方式su和su -的区别
查看>>
php面向对象
查看>>
CHIL-SQL-IN 操作符
查看>>
des 加密 iOS
查看>>
XML 对xml文件的crud的增加 create操作 增加元素 增加属性
查看>>
java TCP通信 socket 套接字 用图片上传轰炸服务器
查看>>