强大的纯Java车牌识别程序源码


强大的纯Java车牌识别程序源码, 功能非常全,而且是纯java编写,不含杂质。
资源截图
代码片段和文件信息
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  temp1235.jpg

     文件        156  2010-08-07 17:32  temp14b7.jpg

     文件        161  2010-08-07 17:32  temp1c64.jpg

     文件        170  2010-08-07 17:32  temp3310.jpg

     文件        162  2010-08-07 17:32  temp37fa.jpg

     文件        173  2010-08-07 17:32  temp3842.jpg

     文件        167  2010-08-07 17:32  temp38f5.jpg

     文件        167  2010-08-07 17:32  temp3d87.jpg

     文件        161  2010-08-07 17:32  temp41f7.jpg

     文件        165  2010-08-07 17:32  temp4c79.jpg

     文件        155  2010-08-07 17:32  temp4f6e.jpg

     文件        166  2010-08-07 17:32  temp5aao.jpg

     文件        162  2010-08-07 17:32  temp5fce.jpg

     文件        178  2010-08-07 17:32  temp7a65.jpg

     文件        166  2010-08-07 17:32  temp7b89.jpg

     文件        167  2010-08-07 17:32  temp86f8.jpg

     文件        159  2010-08-07 17:32  temp93cc.jpg

     文件        167  2010-08-07 17:32  temp6ee.jpg

     文件        161  2010-08-07 17:32  temp84a.jpg

     文件        159  2010-08-07 17:32  tempcaf3.jpg

     文件        169  2010-08-07 17:32  tempd616.jpg

     文件        160  2010-08-07 17:32  tempfa77.jpg

     文件        173  2010-08-07 17:32  tempo22b.jpg

     文件        160  2010-08-07 17:32  tempofae.jpg

     文件       1183  2010-08-08 23:08  temp3639ED.jpg

     文件       1177  2010-08-08 23:08  temp36ABBD.jpg

     文件       1178  2010-08-08 23:08  temp3945E7.jpg

     文件       1191  2010-08-08 23:08  temp395725.jpg

     文件       1186  2010-08-08 23:08  temp3A85A1.jpg

     文件       1176  2010-08-08 23:08  temp3CBDC7.jpg

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)