• 大小: 1.76MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-30
  • 语言: Java
  • 标签: java  ocr  

资源简介

java 验证码识别 ocr java 验证码识别 ocr

资源截图

代码片段和文件信息

package cn.pwntcha;

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.imageio.ImageIO;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.io.IOUtils;

public class ImagePreProcess {

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

public static int isWhite(int colorInt) {
Color color = new Color(colorInt);
if (color.getRed() + color.getGreen() + color.getBlue() > 100) {
return 1;
}
return 0;
}

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

public static List splitImage(BufferedImage img)
throws Exception {
List subImgs = new ArrayList();
subImgs.add(img.getSubimage(10 6 8 10));
subImgs.add(img.getSubimage(19 6 8 10));
subImgs.add(img.getSubimage(28 6 8 10));
subImgs.add(img.getSubimage(37 6 8 10));
return subImgs;
}

public static Map loadTrainData() throws Exception {
Map map = new HashMap();
File dir = new File(“train“);
File[] files = dir.listFiles();
for (File file : files) {
map.put(ImageIO.read(file) file.getName().charAt(0) + ““);
}
return map;
}

public static String getSingleCharOcr(BufferedImage img
Map map) {
String result = ““;
int width = img.getWidth();
int height = img.getHeight();
int min = width * height;
for (BufferedImage bi : map.keySet()) {
int count = 0;
Label1: for (int x = 0; x < width; ++x) {
for (int y = 0; y < height; ++y) {
if (isWhite(img.getRGB(x y)) != isWhite(bi.getRGB(x y))) {
count++;
if (count >= min)
break Label1;
}
}
}
if (count < min) {
min = count;
result = map.get(bi);
}
}
return result;
}

public static String getAllOcr(String file) throws Exception {
BufferedImage img = removeBackgroud(file);
List listImg = splitImage(img);
Map map = loadTrainData();
String result = ““;
for (BufferedImage bi :

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        163  2010-08-07 17:32  temp\1235.jpg

     文件        156  2010-08-07 17:32  temp\14b7.jpg

     文件        161  2010-08-07 17:32  temp\1c64.jpg

     文件        170  2010-08-07 17:32  temp\3310.jpg

     文件        162  2010-08-07 17:32  temp\37fa.jpg

     文件        173  2010-08-07 17:32  temp\3842.jpg

     文件        167  2010-08-07 17:32  temp\38f5.jpg

     文件        167  2010-08-07 17:32  temp\3d87.jpg

     文件        161  2010-08-07 17:32  temp\41f7.jpg

     文件        165  2010-08-07 17:32  temp\4c79.jpg

     文件        155  2010-08-07 17:32  temp\4f6e.jpg

     文件        166  2010-08-07 17:32  temp\5aao.jpg

     文件        162  2010-08-07 17:32  temp\5fce.jpg

     文件        178  2010-08-07 17:32  temp\7a65.jpg

     文件        166  2010-08-07 17:32  temp\7b89.jpg

     文件        167  2010-08-07 17:32  temp\86f8.jpg

     文件        159  2010-08-07 17:32  temp\93cc.jpg

     文件        167  2010-08-07 17:32  temp\b6ee.jpg

     文件        161  2010-08-07 17:32  temp\b84a.jpg

     文件        159  2010-08-07 17:32  temp\caf3.jpg

     文件        169  2010-08-07 17:32  temp\d616.jpg

     文件        160  2010-08-07 17:32  temp\fa77.jpg

     文件        173  2010-08-07 17:32  temp\o22b.jpg

     文件        160  2010-08-07 17:32  temp\ofae.jpg

     文件       1183  2010-08-08 23:08  temp3\639ED.jpg

     文件       1177  2010-08-08 23:08  temp3\6ABBD.jpg

     文件       1178  2010-08-08 23:08  temp3\945E7.jpg

     文件       1191  2010-08-08 23:08  temp3\95725.jpg

     文件       1186  2010-08-08 23:08  temp3\A85A1.jpg

     文件       1176  2010-08-08 23:08  temp3\CBDC7.jpg

............此处省略1102个文件信息

评论

共有 条评论