浅析去除验证码图片中的干扰线噪点(java)

Posted 夜雨听风波

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析去除验证码图片中的干扰线噪点(java)相关的知识,希望对你有一定的参考价值。

     (原创文章,转载请加转载地址)  版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明

  图片处理中最为重要的是对目标图片的特征分析,通过这些特征(点)设计图片预处理方法。针对带有干扰线、噪点特征的验证码图片,自然有它自己的处理方法,下面是个人的一点愚见,图像处理常用的是MATLAB和c++来做的,因为它们都有强大的图像处理的库,在Java中关于图像处理的就相对来说少一些。

  图片像素由24位二进制的机器码表示,可以表示为ARGB,这里和色彩的RGB并不冲突,这里的A表示的是透明度,网上有很多关于这方面的阐述,这里就不赘述了,我这里要做的是关于纯背景色,前景色彩不做要求的验证码图片。该方法是基于像素级的操作,对前景和背景内容在像素上也有一定的要求,要求干扰线比前景内容在笔画上要细,这一点很重要,也是方法的主要精髓,通过对像素的操作就可以实现去除干扰线和噪点的效果,相信知道一点图像处理的人应该已经知道怎么回事了吧。

  这些只是本人的一点点原创拙见,出于对图片处理方面感兴趣,写了一个处理这方面图片的java小项目,希望大神多多指教,谢谢!

  有许多朋友问到如何识别这些验证码图片,其实要识别这些验证码图片,最难的就是把验证码图像处理成无任何干扰的二值图像(就是黑白图,这一步是重点、关键,也是难点),然后利用图像分割切割单个字符,做一定量的字库,就可以顺利实现识别的目的啦。

  废话不说了,有图有真相,下面是自己处理过的图片和效果图:

       样板图:                                                                                                                    

               

                                         

 

  处理后的效果图:

        

                                       

 

 

 

  

                                                                                                                                                                                                             

 

以上是关于浅析去除验证码图片中的干扰线噪点(java)的主要内容,如果未能解决你的问题,请参考以下文章

Selenium-WebDriver实战篇Java丨验证码图片去除干扰像素,方便验证码的识别(转)

验证码识别---基本流程

如何用PHP生成验证码

opencv 验证码 识别

用tesseract实现图片验证码降噪识别

82 数字验证码识别实例