图像处理——第三篇 Java做的验证码识别

来源:互联网 发布:网络教育英语统考试题 编辑:程序博客网 时间:2024/05/03 02:26

近期忙,没有接着原来的写,今天过来看了下,发现很冷清,决定花点时间修饰一下。

基础的东西写多了,没意思,也没观众,来个实在的:原CSDN验证码识别过程详解。

先上几个图:

第一个图: 原始的验证码图

第二个图:灰度直方图

第三个图:红色直方图

 

第四个图:绿色直方图

 

第五个图:蓝色直方图

第六个图:色调直方图

第七个图:饱和度直方图

第八个图:亮度直方图

 

 

 

好了,基本的图上完了,看怎么处理哈:

第一步:直接变成黑白图,在代码面板中输入filter.blank();

如下图,

 

然后点击运行,再转到图像面板:图想变成黑白的了:

 

黑白中有很多小黑点,要去掉所有小黑点,只需要转到脚本面板,输入filter.close(new int[]{0,0,0,0},2,2);选中这句话,点击run

进行图像处理中的闭运算,可以去掉很多小黑点,结果图如下:

还有两个小黑点,很讨厌,可以用大一点的模版(2×3,刚才是2×2)去把它去掉:

filter.close(newint[] { 0, 0 ,0,0,0,0}, 2, 3);结果如下:

 

 

好了,现在已经是没有干扰的黑白图像了,就开始切吧:

调用自己写的切分算法(按连通切分): filter.cut(); 可以生成5张图片:运行下面的代码,把每张图片显示了出来:

List ll =filter.cut();

for(BufferedImageimg:ll){

         new ImageTest(img);

}

图片如下:

  

 

对每一张图片(例如最后那张X),进行切空边,调用代码:filter.cutPadding();

 

这样就差不多可以和原来的模版比,看和哪个字符最相似。模式匹配的部分,这里就步多说了,留到以后有机会再说。这里讲了图象的预处理与分割。

原创粉丝点击