不用神经网络利用图片相似度识别验证码--代码分析

本文介绍了不使用神经网络的验证码识别方法,主要通过计算待识别验证码与已标注图片的相似度来识别。过程包括图片截取、获取数据集和相关性判断。相关性判断中,比较了余弦相似性、皮尔逊相关系数和欧几里得距离等方法的效果。尽管尝试了不同的相关性度量,但没有大量标注数据难以确定最佳方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一次听说可以不用神经网络识别验证码,觉得十分的神奇。下载下代码瞅了一眼,其实是通过待识别的验证码与已标注的图片计算相似度得到相关系数。对验证码的整齐程度要求比较高,扭曲、变形都无法正常识别。

图片截取

验证码中包含多个数字,需要将其截取为单个数字的图片才能进行相关性计算。首先需要根据颜色将数字提取出来,选择像素为220或227的位置保存。新建一个格式为"1"的图片将位置信息重新保存为图片。
在这里插入图片描述
随后遍历每一列,不包含任何像素的一列视为起始或结束的位置。

for num in range(target.size[0]):
    cur=True
    for y in 
源码名称: 图片相似识别 主要功能: 支持识别,经过角度旋转,经过干扰,经过扭曲,完全不相同但近似的图。 论坛的很多图片相似度识别源码,大体都只能对比图片高度一致的图片才有效,对于经过了旋转角度,颜色干扰,或者根本就不是一张图,但是是一种类型的图。都起不了作用,所以自己研究搞了这个源码 相关知识点来自baidu! 功能原理: 思路源自三原色也就是RGB。 众所周知RGB 色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的, RGB 即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色。 三原色,每个原色可以生成256种颜色。三通道加一起刚好就是256*3种颜色。每张图片相同的图片。所使用的颜色数量基本上近似一致。而不相同的图片,颜色使用量可以说是差距很大。 由此想到,记录红、绿、蓝三个通道的各自256中颜色的量。进行两张图片对比。设置一个容差值 假设为-100 和 + 100 为什么设置容差值呢,因为相同的一种图片 肉眼看着一致,很多时候,颜色值还是有点差距的。但是这个差距一定是在一个范围内。因为如果范围太大的话。肉眼都能看出来颜色不一样了。所以更别说软件了。 设置容差值之后 累计 256*3 个颜色的颜色用量。进行对比。再受容差值的影响。最终计算的结果。进行一个百分比计算。就可以得出图片相似度。 经过实际测试,一般情况下 百分之55以上的相似度,基本上可以判定位同一种类图。因为如果不是一个种类的。相似度基本上是30以下 因为颜色的用量是天壤之别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值