자바 단순 인증 코드 인식 (소스 코드 첨부)

80347 단어 JAVA 제로 부터.
학습 목적: 자바 류 집합 과 IO 흐름 조작 에 익숙 하고 이미지 기본 지식 을 인식 할 수 있 는 도형: 这里写图片描述 这里写图片描述 这里写图片描述
이 인증 코드 다운로드 사이트 주소:http://www.quanjing.com/createImg.aspx (이 인증 코드 는 수집 할 수 있 습 니 다. 제 전편 에 있 습 니 다.http://blog.csdn.net/q651742112/article/details/76177275소스 코드
사고: 이 인증 코드 비교 규칙 은 숫자 가 모두 고정된 구역 에 표시 되 고 숫자 도 접착 되 지 않 습 니 다. 실현 절 차 는 다음 과 같 습 니 다. 1. 이미지 에 대해 분할 하고 하나의 이미지 로 나 누 어 하나의 숫자 2 1 를 표시 합 니 다. 2. 모든 이미지 에 대해 회색 처 리 를 하 는 것 은 하나의 한도 값 을 설정 하여 그들 을 흑백 이미지 8 2 로 바 꾸 는 것 입 니 다.3. 표준 디지털 이미지 라 이브 러 리 0 这里写图片描述 를 만 듭 니 다. 분 단 된 작은 그림 마다 표준 라 이브 러 리 와 비교 하면 픽 셀 점 이 가장 많이 겹 치 는 것 이 바로 이 숫자 입 니 다.
다음은 간단 한 인터페이스 8620
식별 인터페이스: Java简单验证码识别(附源码)_第1张图片 结果
키 소스 코드 를 다음 과 같이 캡 처 합 니 다 (글 끝 에 상세 한 항목 다운로드 주소 와 exe 파일 을 열 수 있 습 니 다).
주의사항: 1. 표준 이미지 라 이브 러 리 는 분 단 된 작은 그림 에 대한 픽 셀 점 작업 으로 만 든 것 입 니 다. 2. 경로 가 모 르 는 곳 은 제 이전 글 을 참고 하 십시오.
package stringText;

import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.imageio.ImageIO;
import javax.imageio.stream.FileImageInputStream;
import javax.print.attribute.standard.RequestingUserName;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class temp extends JPanel {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        System.out.println("          :");//
        temp st = new temp(); //           
        File file = st.getFile(); //                
        String path = file.getAbsolutePath(); //             
        BufferedImage image; //         
        int result[] = new int[4];//        
        copyStandardImg();//            D:\image\VerificationCode\temp
        result = discernImg(path); //     ,       
        System.out.print("      :");
        for (int i = 0; i < 4; i++) { //     
            System.out.print(result[i]);
        }
    }

    /**
     *          
     * 
     * @return
     */
    public File getFile() {
        JFileChooser fc = new JFileChooser();
        fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
        int returnVal = fc.showOpenDialog(this);
        File fileChoosed = fc.getSelectedFile();
        return fileChoosed;
    }

    /**
     *               D:\image\VerificationCode\temp   
     * 
     * @throws IOException
     */
    public static void copyStandardImg() throws IOException {
        File sf = new File("d:\\image\\VerificationCode\\temp\\");//             
        if (!sf.exists()) { //         
            sf.mkdirs();
        }
        temp st = new temp(); //           
        for (int i = 0; i < 10; i++) {
            String s = i + ".gif"; //      
            InputStream is = st.getClass().getResourceAsStream("/image/" + s); //          
            // 1K     
            byte[] bs = new byte[1024];
            //         
            int len;

            OutputStream os = new FileOutputStream(sf.getPath() + "\\" + s); //       
            while ((len = is.read(bs)) != -1) {
                os.write(bs, 0, len); //         
            }
        }

    }

    /**
     *         ,       
     */
    public static int[] discernImg(String imgPath) {
        int result[] = new int[4]; //        
        try {
            BufferedImage image; //       

            image = ImageIO.read(new File(imgPath)); //     
            List bufImgList = new ArrayList(); //        
            bufImgList = splitImage(image); //     
            for (int i = 0; i < 4; i++) {
                bufImgList.set(i, removeBackgroudMin(bufImgList.get(i))); //         
                result[i] = decideImgNumber(bufImgList.get(i)); //          
            }

        } catch (Exception e) {
            // TODO: handle exception
        }
        return result;
    }

    /**
     *     ,       
     * 
     * @param img
     * @return
     * @throws Exception
     */
    public static List splitImage(BufferedImage img) throws Exception {
        List subImgs = new ArrayList();
        subImgs.add(img.getSubimage(7, 5, 9, 12));//        ,     9x12,     (7,5)
        subImgs.add(img.getSubimage(16, 5, 9, 12));
        subImgs.add(img.getSubimage(25, 5, 9, 12));
        subImgs.add(img.getSubimage(34, 5, 9, 12));
        return subImgs;
    }

    /**
     *         ,       
     * 
     * @param picFile
     * @return
     * @throws Exception
     */
    public static BufferedImage removeBackgroudMin(BufferedImage img) throws Exception {
        int width = img.getWidth(); //           
        int height = img.getHeight();
        for (int x = 0; x < height; ++x) {
            for (int y = 0; y < width; ++y) {
                if (isWhite(img.getRGB(y, x)) == 1) { //             
                    img.setRGB(y, x, Color.WHITE.getRGB()); //     
                } else {
                    img.setRGB(y, x, Color.BLACK.getRGB()); //     
                }
            }
        }
        return img;
    }

    /**
     *     (             )
     * 
     * @param bufImg
     * @param savePath
     * @param saveName
     */
    public static void saveImage(BufferedImage bufImg, String savePath, String saveName) {
        try {
            int width = bufImg.getWidth(); //          
            int height = bufImg.getHeight();//          
            Graphics g = bufImg.getGraphics();//      Graphics  ,           ,        Image  
            g.drawImage(bufImg, 0, 0, null); //           
            ImageIO.write(bufImg, "gif", new File(savePath + saveName));//  BufferedImage       。
        } catch (Exception e) {
            // TODO: handle exception
        }

    }

    /**
     *         ,       
     * 
     * @param picFile
     * @return
     * @throws Exception
     */
    public static BufferedImage removeBackgroudMin(String picFile) throws Exception {
        BufferedImage img = ImageIO.read(new File(picFile));
        int width = img.getWidth();
        int height = img.getHeight();
        for (int x = 0; x < height; ++x) {
            for (int y = 0; y < width; ++y) {
                if (isWhite(img.getRGB(y, x)) == 1) {
                    img.setRGB(y, x, Color.WHITE.getRGB());
                } else {
                    img.setRGB(y, x, Color.BLACK.getRGB());
                }
            }
        }
        return img;
    }

    public static int isBlack(int colorInt) {
        Color color = new Color(colorInt); //       
        if (color.getRed() + color.getGreen() + color.getBlue() <= 100) {//     ,           
            return 1; //       1
        }
        return 0;//     ,   0
    }

    /**
     *                
     * 
     * @param colorInt
     * @return
     */
    public static int isWhite(int colorInt) {
        Color color = new Color(colorInt); //       
        if (color.getRed() + color.getGreen() + color.getBlue() > 450) {//     ,           
            return 1; //       1
        }
        return 0; //        0
    }

    /**
     *      RGB            
     */
    public static int getRgbalue(int colorInt) {
        Color color = new Color(colorInt); //       
        if ((color.getRed() + color.getGreen() + color.getBlue() > 0))
            return 0;//     ,           
        return 1;
    }

    /**
     *           ,                (    )
     * 
     * @throws IOException
     */
    public static void drawStandardTemplate(int n) throws IOException {
        int width = 9; //          
        int height = 12;//          
        BufferedImage standardPicture;

        // BufferedImage standardPicture1 = new BufferedImage(width, height,
        // BufferedImage.TYPE_3BYTE_BGR); //         
        // Graphics g = standardPicture1.getGraphics();//
        //      Graphics  ,           ,        Image  
        // g.drawImage(standardPicture1, 0, 0, null); //           

        switch (n) {
        case 0: {
            standardPicture = ImageIO.read(new File("d:\\image\\VerificationCode\\2017 6 27 17 20  4 .gif"));
            File sf = new File("d:\\image\\VerificationCode\\standard\\0.gif");
            if (!sf.exists()) {
                sf.mkdirs();
            }
            standardPicture.setRGB(5, 0, Color.WHITE.getRGB());
            standardPicture.setRGB(6, 0, Color.WHITE.getRGB());
            standardPicture.setRGB(6, 1, Color.WHITE.getRGB());
            standardPicture.setRGB(0, 2, Color.BLACK.getRGB());
            standardPicture.setRGB(3, 2, Color.WHITE.getRGB());
            standardPicture.setRGB(2, 6, Color.WHITE.getRGB());
            standardPicture.setRGB(3, 8, Color.WHITE.getRGB());
            standardPicture.setRGB(6, 10, Color.WHITE.getRGB());
            standardPicture.setRGB(5, 11, Color.WHITE.getRGB());
            standardPicture.setRGB(8, 11, Color.WHITE.getRGB());
            // for (int x = 0; x < width; ++x) {
            // for (int y = 0; y < height; ++y) {
            //
            // standardPicture.setRGB(x, y, Color.WHITE.getRGB());
            // }
            // }
            ImageIO.write(standardPicture, "gif", new File("d:\\image\\VerificationCode\\standard\\0.gif"));//  BufferedImage       。
        }

            break;
        case 1: {

            standardPicture = ImageIO.read(new File("d:\\image\\VerificationCode\\2017 6 27 17 20  3      12.gif"));
            File sf = new File("d:\\image\\VerificationCode\\standard\\1.gif");
            if (!sf.exists()) {
                sf.mkdirs();
            }
            standardPicture.setRGB(5, 0, Color.BLACK.getRGB());
            standardPicture.setRGB(2, 1, Color.BLACK.getRGB());
            standardPicture.setRGB(8, 1, Color.WHITE.getRGB());
            standardPicture.setRGB(5, 2, Color.BLACK.getRGB());
            standardPicture.setRGB(8, 2, Color.WHITE.getRGB());
            standardPicture.setRGB(5, 3, Color.BLACK.getRGB());
            standardPicture.setRGB(5, 4, Color.BLACK.getRGB());
            standardPicture.setRGB(3, 5, Color.BLACK.getRGB());
            standardPicture.setRGB(5, 5, Color.BLACK.getRGB());
            standardPicture.setRGB(5, 6, Color.BLACK.getRGB());
            standardPicture.setRGB(3, 7, Color.BLACK.getRGB());
            standardPicture.setRGB(7, 8, Color.WHITE.getRGB());
            standardPicture.setRGB(0, 9, Color.WHITE.getRGB());
            standardPicture.setRGB(3, 9, Color.BLACK.getRGB());
            standardPicture.setRGB(5, 10, Color.BLACK.getRGB());
            standardPicture.setRGB(3, 11, Color.BLACK.getRGB());
            standardPicture.setRGB(5, 11, Color.BLACK.getRGB());
            // for (int x = 0; x < width; ++x) {
            // for (int y = 0; y < height; ++y) {
            //
            // standardPicture.setRGB(x, y, Color.WHITE.getRGB());
            // }
            // }
            ImageIO.write(standardPicture, "gif", new File("d:\\image\\VerificationCode\\standard\\1.gif"));//  BufferedImage       。
        }

            break;
        case 2: {
            standardPicture = ImageIO.read(new File("d:\\image\\VerificationCode\\2017 6 27 17 20  3      10.gif"));
            File sf = new File("d:\\image\\VerificationCode\\standard\\");
            if (!sf.exists()) {
                sf.mkdirs();
            }
            standardPicture.setRGB(1, 0, Color.WHITE.getRGB());
            standardPicture.setRGB(5, 0, Color.WHITE.getRGB());
            standardPicture.setRGB(6, 0, Color.WHITE.getRGB());
            standardPicture.setRGB(7, 0, Color.WHITE.getRGB());
            standardPicture.setRGB(7, 4, Color.WHITE.getRGB());
            standardPicture.setRGB(2, 5, Color.WHITE.getRGB());
            standardPicture.setRGB(2, 6, Color.WHITE.getRGB());
            standardPicture.setRGB(7, 7, Color.WHITE.getRGB());
            standardPicture.setRGB(7, 8, Color.WHITE.getRGB());
            // for (int x = 0; x < width; ++x) {
            // for (int y = 0; y < height; ++y) {
            //
            // standardPicture.setRGB(x, y, Color.WHITE.getRGB());
            // }
            // }
            ImageIO.write(standardPicture, "gif", new File("d:\\image\\VerificationCode\\standard\\2.gif"));//  BufferedImage       。
        }

            break;
        case 3: {
            standardPicture = ImageIO.read(new File("d:\\image\\VerificationCode\\2017 6 27 17 20  3      14.gif"));
            File sf = new File("d:\\image\\VerificationCode\\standard\\");
            if (!sf.exists()) {
                sf.mkdirs();
            }
            standardPicture.setRGB(5, 0, Color.WHITE.getRGB());
            standardPicture.setRGB(7, 0, Color.WHITE.getRGB());
            standardPicture.setRGB(6, 0, Color.WHITE.getRGB());
            standardPicture.setRGB(7, 0, Color.WHITE.getRGB());
            standardPicture.setRGB(6, 3, Color.BLACK.getRGB());
            standardPicture.setRGB(1, 5, Color.WHITE.getRGB());
            standardPicture.setRGB(2, 5, Color.WHITE.getRGB());
            standardPicture.setRGB(6, 5, Color.BLACK.getRGB());
            standardPicture.setRGB(1, 6, Color.WHITE.getRGB());
            standardPicture.setRGB(2, 6, Color.WHITE.getRGB());
            standardPicture.setRGB(3, 6, Color.WHITE.getRGB());
            standardPicture.setRGB(7, 7, Color.WHITE.getRGB());
            standardPicture.setRGB(1, 8, Color.WHITE.getRGB());
            standardPicture.setRGB(7, 8, Color.WHITE.getRGB());
            standardPicture.setRGB(2, 9, Color.WHITE.getRGB());
            standardPicture.setRGB(0, 10, Color.WHITE.getRGB());
            standardPicture.setRGB(1, 11, Color.WHITE.getRGB());
            // for (int x = 0; x < width; ++x) {
            // for (int y = 0; y < height; ++y) {
            //
            // standardPicture.setRGB(x, y, Color.WHITE.getRGB());
            // }
            // }
            ImageIO.write(standardPicture, "gif", new File("d:\\image\\VerificationCode\\standard\\3.gif"));//  BufferedImage       。
        }

            break;
        case 4: {
            standardPicture = ImageIO.read(new File("d:\\image\\VerificationCode\\2017 6 27 17 20  3      15.gif"));
            File sf = new File("d:\\image\\VerificationCode\\standard\\");
            if (!sf.exists()) {
                sf.mkdirs();
            }
            standardPicture.setRGB(3, 0, Color.WHITE.getRGB());
            standardPicture.setRGB(1, 1, Color.WHITE.getRGB());
            standardPicture.setRGB(2, 1, Color.WHITE.getRGB());
            standardPicture.setRGB(3, 1, Color.BLACK.getRGB());
            standardPicture.setRGB(8, 1, Color.WHITE.getRGB());
            standardPicture.setRGB(1, 2, Color.WHITE.getRGB());
            standardPicture.setRGB(2, 2, Color.WHITE.getRGB());
            standardPicture.setRGB(0, 3, Color.WHITE.getRGB());
            standardPicture.setRGB(2, 3, Color.BLACK.getRGB());
            standardPicture.setRGB(7, 3, Color.WHITE.getRGB());
            standardPicture.setRGB(8, 3, Color.WHITE.getRGB());
            standardPicture.setRGB(0, 4, Color.WHITE.getRGB());
            standardPicture.setRGB(4, 4, Color.WHITE.getRGB());
            standardPicture.setRGB(0, 5, Color.BLACK.getRGB());
            standardPicture.setRGB(3, 5, Color.WHITE.getRGB());
            standardPicture.setRGB(0, 9, Color.WHITE.getRGB());
            standardPicture.setRGB(1, 11, Color.WHITE.getRGB());
            // for (int x = 0; x < width; ++x) {
            // for (int y = 0; y < height; ++y) {
            //
            // standardPicture.setRGB(x, y, Color.WHITE.getRGB());
            // }
            // }
            ImageIO.write(standardPicture, "gif", new File("d:\\image\\VerificationCode\\standard\\4.gif"));//  BufferedImage       。
        }

            break;
        case 5: {
            standardPicture = ImageIO.read(new File("d:\\image\\VerificationCode\\2017 6 27 17 20  3      13.gif"));
            File sf = new File("d:\\image\\VerificationCode\\standard\\");
            if (!sf.exists()) {
                sf.mkdirs();
            }
            standardPicture.setRGB(0, 2, Color.BLACK.getRGB());
            standardPicture.setRGB(0, 3, Color.BLACK.getRGB());
            standardPicture.setRGB(0, 4, Color.BLACK.getRGB());
            standardPicture.setRGB(5, 4, Color.WHITE.getRGB());
            standardPicture.setRGB(6, 5, Color.WHITE.getRGB());
            standardPicture.setRGB(0, 6, Color.WHITE.getRGB());
            standardPicture.setRGB(1, 6, Color.WHITE.getRGB());
            standardPicture.setRGB(0, 5, Color.WHITE.getRGB());
            standardPicture.setRGB(5, 5, Color.BLACK.getRGB());

            standardPicture.setRGB(5, 7, Color.BLACK.getRGB());
            // for (int x = 0; x < width; ++x) {
            // for (int y = 0; y < height; ++y) {
            //
            // standardPicture.setRGB(x, y, Color.WHITE.getRGB());
            // }
            // }
            ImageIO.write(standardPicture, "gif", new File("d:\\image\\VerificationCode\\standard\\5.gif"));//  BufferedImage       。
        }

            break;
        case 6: {
            standardPicture = ImageIO.read(new File("d:\\image\\VerificationCode\\2017 6 27 17 20  3 .gif"));
            File sf = new File("d:\\image\\VerificationCode\\standard\\");
            if (!sf.exists()) {
                sf.mkdirs();
            }
            standardPicture.setRGB(8, 1, Color.WHITE.getRGB());
            standardPicture.setRGB(8, 6, Color.WHITE.getRGB());
            standardPicture.setRGB(2, 8, Color.WHITE.getRGB());
            standardPicture.setRGB(7, 9, Color.WHITE.getRGB());
            standardPicture.setRGB(6, 10, Color.WHITE.getRGB());
            standardPicture.setRGB(7, 10, Color.WHITE.getRGB());
            standardPicture.setRGB(8, 10, Color.WHITE.getRGB());
            // for (int x = 0; x < width; ++x) {
            // for (int y = 0; y < height; ++y) {
            //
            // standardPicture.setRGB(x, y, Color.WHITE.getRGB());
            // }
            // }
            ImageIO.write(standardPicture, "gif", new File("d:\\image\\VerificationCode\\standard\\6.gif"));//  BufferedImage       。
        }

            break;
        case 7: {
            standardPicture = ImageIO.read(new File("d:\\image\\VerificationCode\\2017 6 27 17 20  3      16.gif"));
            File sf = new File("d:\\image\\VerificationCode\\standard\\");
            if (!sf.exists()) {
                sf.mkdirs();
            }
            standardPicture.setRGB(7, 0, Color.WHITE.getRGB());
            standardPicture.setRGB(3, 1, Color.BLACK.getRGB());
            standardPicture.setRGB(8, 4, Color.WHITE.getRGB());
            standardPicture.setRGB(5, 5, Color.WHITE.getRGB());
            standardPicture.setRGB(5, 8, Color.WHITE.getRGB());
            standardPicture.setRGB(6, 8, Color.WHITE.getRGB());
            standardPicture.setRGB(0, 9, Color.WHITE.getRGB());
            standardPicture.setRGB(1, 9, Color.WHITE.getRGB());
            standardPicture.setRGB(5, 9, Color.WHITE.getRGB());
            standardPicture.setRGB(6, 9, Color.WHITE.getRGB());
            // for (int x = 0; x < width; ++x) {
            // for (int y = 0; y < height; ++y) {
            //
            // standardPicture.setRGB(x, y, Color.WHITE.getRGB());
            // }
            // }
            ImageIO.write(standardPicture, "gif", new File("d:\\image\\VerificationCode\\standard\\7.gif"));//  BufferedImage       。
        }

            break;
        case 8: {
            standardPicture = ImageIO.read(new File("d:\\image\\VerificationCode\\2017 6 27 17 20  1 .gif"));
            File sf = new File("d:\\image\\VerificationCode\\standard\\8.gif");
            if (!sf.exists()) {
                sf.mkdirs();
            }
            standardPicture.setRGB(0, 1, Color.WHITE.getRGB());
            standardPicture.setRGB(1, 2, Color.BLACK.getRGB());
            standardPicture.setRGB(2, 2, Color.BLACK.getRGB());
            standardPicture.setRGB(4, 2, Color.BLACK.getRGB());
            standardPicture.setRGB(7, 2, Color.WHITE.getRGB());
            standardPicture.setRGB(0, 3, Color.BLACK.getRGB());
            standardPicture.setRGB(4, 3, Color.WHITE.getRGB());
            standardPicture.setRGB(0, 4, Color.BLACK.getRGB());
            standardPicture.setRGB(6, 4, Color.BLACK.getRGB());
            standardPicture.setRGB(0, 5, Color.WHITE.getRGB());
            standardPicture.setRGB(6, 5, Color.WHITE.getRGB());
            standardPicture.setRGB(3, 6, Color.BLACK.getRGB());
            standardPicture.setRGB(3, 7, Color.BLACK.getRGB());
            standardPicture.setRGB(4, 7, Color.BLACK.getRGB());
            standardPicture.setRGB(6, 10, Color.WHITE.getRGB());
            standardPicture.setRGB(6, 11, Color.WHITE.getRGB());
            // for (int x = 0; x < width; ++x) {
            // for (int y = 0; y < height; ++y) {
            //
            // standardPicture.setRGB(x, y, Color.WHITE.getRGB());
            // }
            // }
            ImageIO.write(standardPicture, "gif", new File("d:\\image\\VerificationCode\\standard\\8.gif"));//  BufferedImage       。
        }

            break;
        case 9: {
            standardPicture = ImageIO.read(new File("d:\\image\\VerificationCode\\2017 6 27 17 20  3      17.gif"));
            File sf = new File("d:\\image\\VerificationCode\\standard\\");
            if (!sf.exists()) {
                sf.mkdirs();
            }
            standardPicture.setRGB(6, 1, Color.WHITE.getRGB());
            standardPicture.setRGB(7, 1, Color.WHITE.getRGB());
            standardPicture.setRGB(7, 2, Color.WHITE.getRGB());
            standardPicture.setRGB(7, 7, Color.WHITE.getRGB());
            standardPicture.setRGB(8, 7, Color.WHITE.getRGB());
            standardPicture.setRGB(0, 10, Color.WHITE.getRGB());
            // for (int x = 0; x < width; ++x) {
            // for (int y = 0; y < height; ++y) {
            //
            // standardPicture.setRGB(x, y, Color.WHITE.getRGB());
            // }
            // }
            ImageIO.write(standardPicture, "gif", new File("d:\\image\\VerificationCode\\standard\\9.gif"));//  BufferedImage       。
        }

            break;
        default:
            break;
        }
    }

    /**
     *               
     */
    public static int imgToImgCompare(BufferedImage bufImg, BufferedImage standardImg) {
        int width = bufImg.getWidth(); //             
        int height = bufImg.getHeight();
        int count = 0;
        for (int x = 0; x < width; ++x) { //        
            for (int y = 0; y < height; ++y) {
                if (bufImg.getRGB(x, y) == standardImg.getRGB(x, y) && bufImg.getRGB(x, y) == Color.BLACK.getRGB()) {//      
                    count++;
                }
            }
        }

        return count;
    }

    /**
     *             
     */
    public static int decideImgNumber(BufferedImage bufImg) throws Exception {
        // try {
        //          
        //       
        BufferedImage standardImg0 = ImageIO.read(new File("D:\\image\\VerificationCode\\temp\\0.gif"));
        BufferedImage standardImg1 = ImageIO.read(new File("D:\\image\\VerificationCode\\temp\\1.gif"));
        BufferedImage standardImg2 = ImageIO.read(new File("D:\\image\\VerificationCode\\temp\\2.gif"));
        BufferedImage standardImg3 = ImageIO.read(new File("D:\\image\\VerificationCode\\temp\\3.gif"));
        BufferedImage standardImg4 = ImageIO.read(new File("D:\\image\\VerificationCode\\temp\\4.gif"));
        BufferedImage standardImg5 = ImageIO.read(new File("D:\\image\\VerificationCode\\temp\\5.gif"));
        BufferedImage standardImg6 = ImageIO.read(new File("D:\\image\\VerificationCode\\temp\\6.gif"));
        BufferedImage standardImg7 = ImageIO.read(new File("D:\\image\\VerificationCode\\temp\\7.gif"));
        BufferedImage standardImg8 = ImageIO.read(new File("D:\\image\\VerificationCode\\temp\\8.gif"));
        BufferedImage standardImg9 = ImageIO.read(new File("D:\\image\\VerificationCode\\temp\\9.gif"));

        int result[] = new int[10]; //                
        //              
        int max = 0; //      
        int site = 0; //        
        for (int i = 0; i < 10; i++) { //     
            switch (i) {
            case 0: {
                result[i] = imgToImgCompare(bufImg, standardImg0);
            }

                break;
            case 1: {
                result[i] = imgToImgCompare(bufImg, standardImg1);
            }
                break;
            case 2: {
                result[i] = imgToImgCompare(bufImg, standardImg2);
            }
                break;
            case 3: {
                result[i] = imgToImgCompare(bufImg, standardImg3);
            }
                break;
            case 4: {
                result[i] = imgToImgCompare(bufImg, standardImg4);
            }
                break;
            case 5: {
                result[i] = imgToImgCompare(bufImg, standardImg5);
            }
                break;
            case 6: {
                result[i] = imgToImgCompare(bufImg, standardImg6);
            }
                break;
            case 7: {
                result[i] = imgToImgCompare(bufImg, standardImg7);
            }
                break;
            case 8: {
                result[i] = imgToImgCompare(bufImg, standardImg8);
            }
                break;
            case 9: {
                result[i] = imgToImgCompare(bufImg, standardImg9);
            }
                break;
            default:
                break;
            }

        }

        for (int i = 0; i < 10; i++) { //     
            if (result[i] > max) {
                max = result[i];
                site = i;
            }
        }
        return site; //        
        // } catch (Exception e) {
        // // TODO: handle exception
        // System.out.println(e);
        // }
        // return 0;
        // }
    }

}

소스 코드 패키지 주소: 링크:https://download.csdn.net/download/q651742112/10527190

좋은 웹페이지 즐겨찾기