验证码识别破解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lj_dreamone/article/details/52596860

针对比较整齐的数字验证码

过程:提取数据模型,根据数据模型匹配图片验证码
图示:
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

详细步骤:
一 提取数据模型:
从网络地址获取图片

    public static void getImage()
    {
        try {
            URL url = new URL("http://10.7.84.10:7001/exchange/imgcode?Fri%20Jun%2024%202016%2010:02:26%20GMT+0800%20(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)?Fri%20Jun%2024%202016%2010:02:26%20GMT+0800%20(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)?Fri%20Jun%2024%202016%2010:02:52%20GMT+0800%20(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)");  //返回的是4位验证码的图片  
            File outFile = new File("C:\\a.jpg");  
            OutputStream os = new FileOutputStream(outFile);  
            BufferedReader bf = new BufferedReader(new InputStreamReader(url.openStream()));  

            InputStream is = (InputStream) url.openStream();  
            byte[] buff = new byte[1024];  
            while(true) {    //要注意这种写法  
                int readed = is.read(buff);  
                if(readed == -1) {  
                    break;  
                }  
                byte[] temp = new byte[readed];  
                System.arraycopy(buff, 0, temp, 0, readed);   // 这句是关键  
                os.write(temp);  
            }  
            is.close();   
            os.close();
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
  1. 将图片黑化,裁剪,等值分割,获取拆分后的每个数字的图片

————————–未完

猜你喜欢

转载自blog.csdn.net/lj_dreamone/article/details/52596860