package com.young.crash; import java.awt.image.BufferedImage; import java.io.IOException; public class CrashCode { private static final int[][][] model = { { // 0 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1 }, { 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, { 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0 }, { 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0 }, { 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1 }, { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1 }, { 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1 }, }, { // 1 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1 }, { 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1 }, { 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, }, { // 2 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 }, { 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0 }, { 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0 }, { 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1 }, { 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0 }, { 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 }, }, {// 3 { 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1 }, { 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1 }, { 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 }, { 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0 }, { 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0 }, { 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 }, { 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 }, }, {// 4 { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1 }, { 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1 }, { 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1 }, { 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0 }, { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1 }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1 }, }, {// 5 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 }, { 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0 }, { 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0 }, { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0 }, { 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0 }, { 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1 }, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1 }, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1 }, }, {// 6 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1 }, { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, { 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0 }, { 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0 }, { 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0 }, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1 }, { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1 }, { 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, }, {// 7 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 }, { 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 }, { 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1 }, { 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1 }, { 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1 }, { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, }, {// 8 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1 }, { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 }, { 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0 }, { 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0 }, { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1 }, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1 }, { 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 }, }, {// 9 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1 }, { 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 }, { 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0 }, { 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0 }, { 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 }, { 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 }, } }; public static void main(String[] args) throws IOException { for (int i = 0; i < 100; i++) { BufferedImage image = Tools .getImage("checkCode/code_" + i + ".jpg"); BufferedImage img = Tools.getSingleCode(image); String code = compare(img); System.out.println("code" + i +" "+code); } } public static String compare(BufferedImage image) { BufferedImage checkCode[] = Tools.getCheckCodes(image); StringBuffer code = new StringBuffer(); for (int t = 0; t < 4; t++) { int[] result = new int[10]; boolean ckFlg = false; int num = -1; for (int i = 0; i < 10; i++) { num = -1; ckFlg = true; for (int x = 0; x < checkCode[t].getWidth(); x++) { for (int y = 0; y < checkCode[t].getHeight(); y++) { int expRGB = Tools.pixelConvert(checkCode[t].getRGB(x, y)); int cmpRGB = model[i][x][y]; if (expRGB == cmpRGB) { result[i]++; } } } if (result[i] > 90) { ckFlg = true; num = i; break; } } if (ckFlg) { code.append(num); ckFlg = false; } else { ckFlg = false; } } return code.toString(); } }

liujun0104 LV5
昨天
EdgarLi LV14
2022年7月19日
xxg2810 LV2
2021年3月8日
wyzl3321 LV25
2020年6月25日
wangdehai LV3
2020年1月1日
blueskyroof LV9
2019年11月28日
qwerasdfzxcv12 LV1
2019年2月15日
3207828 LV1
2018年12月14日
2985225214 LV10
2018年11月30日
TreasureUp LV1
2018年5月8日