
验证码识别
文章平均质量分 73
ysc_ysc
这个作者很懒,什么都没留下…
展开
-
图像验证码的识别(一)——浅谈bmp文件格式
上个学期,用openCV做了一个OCR的课程设计,主要就是对图片验证码进行识别。最近新开学闲来无事,想想还是总结一下比较好,首先还是对图片的存储格式来介绍一下。在计算机图形学里,图片就是一个像素的矩阵,矩阵中的每一个点都是各种颜色的点,最后总体上来看就是一副图像。原创 2015-03-03 21:08:02 · 4334 阅读 · 0 评论 -
图像验证码识别(六)——图像中的直线检测
这里题目之所以没有写成“验证码图片中的干扰线去除”,就是因为在干扰线去除做的不是很好,最后也没有找到什么较为通用的算法能够有效地去除干扰线因素。不过也不算完全没有收获,这里就谈谈直线的检测。OpenCV提供hough变换来检测直线,具体的API是CvSeq* cvHoughLines2( CvArr* image, void* line_storage, int mehtod, d原创 2015-03-22 19:50:04 · 5524 阅读 · 0 评论 -
图像验证码识别(九)——训练和识别
前面讲到已经把所有的字符经过去干扰、分割和归一化得到标准大小的单个字符,接下来要做的就是识别验证码了。现在要做的基本上也就和OCR没什么区别了,因为得到的字符已经是尽可能标准的了。下面的识别分为两个步骤,第一步先是特征值的提取,第二步是SVM训练。一、特征值提取首先要说的是我当时在做这个的时候,还没有了解“主成分分析”,所以在提取特征值的时候用的是比较简单的方法,就是简单的提取像素原创 2016-03-01 14:39:23 · 15456 阅读 · 5 评论 -
图像验证码识别(八)——字符归一化
前面提到了将验证码上的字符分割成一个单独的字符图片并且保存,但是扣下来的字符串可能会有倾斜的现象,因为现在很多网页验证码为了防止破解都对字符进行了一定的扭曲和旋转,即使是同一个网站的验证码,每个相同的字符很有可能都是不一样的,所以为了提高识别的正确率,在这里最好能让每次进行训练的字符能够保持同一个角度。所以首先需要做的就是旋转倾斜。一、旋转倾斜旋转倾斜的目的就是要提高识别的正确率,原创 2016-03-01 14:38:32 · 8068 阅读 · 0 评论 -
图像验证码识别(七)——字符分割
前面经过各种去除噪点、干扰线,验证码图片现在已经只有两个部分,如果pixel为白就是背景,如果pixel为黑就为字符。正如前面流畅所提到的一样,为了字符的识别,这里需要将图片上的字符一个一个“扣”下来,得到单个的字符,接下来再进行OCR识别。字符分割可以说是图像验证码识别最关键的一步,因为分割的正确与否直接关系到最后的结果,如果4个字符分割成了3个,即便后面的识别算法识别率达到100%,结原创 2016-03-01 14:37:21 · 20470 阅读 · 2 评论 -
图像验证码识别(五)——去除噪点
降噪在计算机和信号学中用到的非常多,在多媒体技术中,降噪主要是去除图片上的干扰噪点,玩过单反的都知道,当ISO调太高的时候,图片会产生颗粒感,这些颗粒就是噪点。当然,验证码图片上的噪点有大有小,只要是用来干扰机器识别的,会对后面的图片处理以及识别造成干扰。常见的降噪算法一般都是一些滤波算法——均值滤波、中值滤波、自适应维纳滤波器和小波滤波等,不过在这里由于大多数验证码字符本身不是标准的打印原创 2016-03-01 14:36:23 · 35276 阅读 · 8 评论 -
图像验证码识别(四)——灰度化和二值化
一、灰度化灰度化应用很广,而且也比较简单。灰度图就是将白与黑中间的颜色等分为若干等级,绝大多数位256阶。在RGB模型种,黑色(R=G=B=0)与白色(R=G=B=255),那么256阶的灰度划分就是R=G=B=i,其中i取0到255.从前面可以知道,OpenCV读取图片之后图像的颜色数据矩阵默认是3通道的,也就是RGB模型,所以每个pixel都有3个分量,分别代表r,g和b的值。原创 2016-03-01 14:34:58 · 13458 阅读 · 2 评论 -
图像验证码识别(三)——基本流程讨论
图像验证码的识别很类似OCR,不过验证码的功能就是防止机器人暴力破解,因此相比于OCR,图片上的干扰因素要多的多。因此如果直接读取图片的特征值进行训练,这样正确率会非常低。常见的验证码干扰有很多种1. 首先是噪点,就是验证码图片种有很多鼓励的点,有些噪点的颜色各异,比如下面这张:2. 其次是字符的倾斜,验证码会有不同程度的旋转、扭曲,使得在识别的时候不易破解。原创 2016-03-01 14:32:17 · 9849 阅读 · 0 评论 -
图像验证码识别(二)——OpenCV在Ubuntu环境下的安装
前面已经大致讲过位图文件的数据构成,但是图片的格式有很多,网上的验证码文件都是各种格式,位图文件算是简单的了,如果生成的是其他文件的验证码,解析起来更加麻烦。所以这里使用开源的计算机视觉库——OpenCV(Open Source Computer Vision Library)。使用这个,不仅图像的像素信息处理起来要简单的多,省去很多麻烦,同时OpenCV也提供了很多数学函数用于变换等,并且在原创 2015-03-09 20:29:27 · 2987 阅读 · 0 评论