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(); } }
最近下载更多
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日
k12rtkj6 LV1
2018年4月23日