几天一直在研究OCR技术,据我了解的情况,国内最专业的OCR软件只有2家,清华TH-OCR和汉王OCR,看了很多的OCR技术发现好多对英文与数字的支持都很好,可惜很多都不支持中文字符。Asprise-OCR,Tesseract 3.0以前的版本,都不支持中文,其实我用了下Asprise-OCR算是速度比较的快了,可惜他鄙视中文,这个没有办法,正好这段时间知名的开源OCR引擎Tesseract 3.0版本发布了,他给我们带来的好消息就是支持中文,相关的下载项目网站是:http://code.google.com/p/tesseract-ocr
虽然速度不是很客观可是毕竟人家开始支持中文也算是不错的,一个英文的语言包大概是1.8M,中文简体的语言包是39.5M,中文繁体的语言包是53M,这样就知道为什么识别中文慢的原因了
太多人留邮箱了,我一个人发布过来,请大家需要源码的,去资源控件下载,这是一个完整的项目
http://download.csdn.net/detail/zhoushuyan/4050580
package com.ocr;
import java.awt.Graphics2D;
import java.awt.color.ColorSpace;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;
import java.awt.image.ColorModel;
import java.awt.image.MemoryImageSource;
import java.awt.image.PixelGrabber;
/**
*
* 图像过滤,增强OCR识别成功率
*
*/
public class ImageFilter {
private BufferedImage image;
private int iw, ih;
private int[] pixels;
public ImageFilter(BufferedImage image) {
this.image = image;
iw = image.getWidth();
ih = image.getHeight();
pixels = new int[iw * ih];
}
/** 图像二值化 */
public BufferedImage changeGrey() {
PixelGrabber pg = new PixelGrabber(image.getSource(), 0, 0, iw, ih, pixels, 0, iw);
try {
pg.grabPixels();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 设定二值化的域值,默认值为100
int grey = 100;
// 对图像进行二值化处理,Alpha值保持不变
ColorModel cm = ColorModel.getRGBdefault();
for (int i = 0; i < iw * ih; i++) {
int red, green, blue;
int alpha = cm.getAlpha(pixels[i]);
if (cm.getRed(pixels[i]) > grey) {
red = 255;
} else {
red = 0;
}
if (cm.getGreen(pixels[i]) > grey) {
green = 255;
} else {
green = 0;
}
if (cm.getBlue(pixels[i]) > grey) {
blue = 255;
} else {
blue = 0;
}
pixels[i] = alpha << 24 | red << 16 | green << 8 | blue;
}
// 将数组中的象素产生一个图像
return ImageIOHelper.imageProducerToBufferedImage(new MemoryImageSource(iw, ih, pixels, 0, iw));
}
/** 提升清晰度,进行锐化 */
public BufferedImage sharp() {
PixelGrabber pg = new PixelGrabber(image.getSource(), 0, 0, iw, ih, pixels, 0, iw);
try {
pg.grabPixels();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 象素的中间变量
int tempPixels[] = new int[iw * ih];
for (int i = 0; i < iw * ih; i++) {
tempPixels[i] = pixels[i];
}
// 对图像进行尖锐化处理,Alpha值保持不变
ColorModel cm = ColorModel.getRGBdefault();
for (int i = 1; i < ih - 1; i++) {
for (int j = 1; j < iw - 1; j++) {
int alpha = cm.getAlpha(pixels[i * iw + j]);
// 对图像进行尖锐化
int red6 = cm.getRed(pixels[i * iw + j + 1]);
int red5 = cm.getRed(pixels[i * iw + j]);
int red8 = cm.getRed(pixels[(i + 1) * iw + j]);
int sharpRed = Math.abs(red6 - red5) + Math.abs(red8 - red5);
int green5 = cm.getGreen(pixels[i * iw + j]);
int green6 = cm.getGreen(pixels[i * iw + j + 1]);
int green8 = cm.getGreen(pixels[(i + 1) * iw + j]);
int sharpGreen = Math.abs(green6 - green5) + Math.abs(green8 - green5);
int blue5 = cm.getBlue(pixels[i * iw + j]);
int blue6 = cm.getBlue(pixels[i * iw + j + 1]);
int blue8 = cm.getBlue(pixels[(i + 1) * iw + j]);
int sharpBlue = Math.abs(blue6 - blue5) + Math.abs(blue8 - blue5);
if (sharpRed > 255) {
sharpRed = 255;
}
if (sharpGreen > 255) {
sharpGreen = 255;
}
if (sharpBlue > 255) {
sharpBlue = 255;
}
tempPixels[i * iw + j] = alpha << 24 | sharpRed << 16 | sharpGreen << 8 | sharpBlue;
}
}
// 将数组中的象素产生一个图像
return ImageIOHelper.imageProducerToBufferedImage(new MemoryImageSource(iw, ih, tempPixels, 0, iw));
}
/** 中值滤波 */
public BufferedImage median() {
PixelGrabber pg = new PixelGrabber(image.getSource(), 0, 0, iw, ih, pixels, 0, iw);
try {
pg.grabPixels();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 对图像进行中值滤波,Alpha值保持不变
ColorModel cm = ColorModel.getRGBdefault();
for (int i = 1; i < ih - 1; i++) {
for (int j = 1; j < iw - 1; j++) {
int red, green, blue;
int alpha = cm.getAlpha(pixels[i * iw + j]);
// int red2 = cm.getRed(pixels[(i - 1) * iw + j]);
int red4 = cm.getRed(pixels[i * iw + j - 1]);
int red5 = cm.getRed(pixels[i * iw + j]);
int red6 = cm.getRed(pixels[i * iw + j + 1]);
// int red8 = cm.getRed(pixels[(i + 1) * iw + j]);
// 水平方向进行中值滤波
if (red4 >= red5) {
if (red5 >= red6) {
red = red5;
} else {
if (red4 >= red6) {
red = red6;
} else {
red = red4;
}
}
} else {
if (red4 > red6) {
red = red4;
} else {
if (red5 > red6) {
red = red6;
} else {
red = red5;
}
}
}
// int green2 = cm.getGreen(pixels[(i - 1) * iw + j]);
int green4 = cm.getGreen(pixels[i * iw + j - 1]);
int green5 = cm.getGreen(pixels[i * iw + j]);
int green6 = cm.getGreen(pixels[i * iw + j + 1]);
// int green8 = cm.getGreen(pixels[(i + 1) * iw + j]);
// 水平方向进行中值滤波
if (green4 >= green5) {
if (green5 >= green6) {
green = green5;
} else {
if (green4 >= green6) {
green = green6;
} else {
green = green4;
}
}
} else {
if (green4 > green6) {
green = green4;
} else {
if (green5 > green6) {
green = green6;
} else {
green = green5;
}
}
}
// int blue2 = cm.getBlue(pixels[(i - 1) * iw + j]);
int blue4 = cm.getBlue(pixels[i * iw + j - 1]);
int blue5 = cm.getBlue(pixels[i * iw + j]);
int blue6 = cm.getBlue(pixels[i * iw + j + 1]);
// int blue8 = cm.getBlue(pixels[(i + 1) * iw + j]);
// 水平方向进行中值滤波
if (blue4 >= blue5) {
if (blue5 >= blue6) {
blue = blue5;
} else {
if (blue4 >= blue6) {
blue = blue6;
} else {
blue = blue4;
}
}
} else {
if (blue4 > blue6) {
blue = blue4;
} else {
if (blue5 > blue6) {
blue = blue6;
} else {
blue = blue5;
}
}
}
pixels[i * iw + j] = alpha << 24 | red << 16 | green << 8 | blue;
}
}
// 将数组中的象素产生一个图像
return ImageIOHelper.imageProducerToBufferedImage(new MemoryImageSource(iw, ih, pixels, 0, iw));
}
/** 线性灰度变换 */
public BufferedImage lineGrey() {
PixelGrabber pg = new PixelGrabber(image.getSource(), 0, 0, iw, ih, pixels, 0, iw);
try {
pg.grabPixels();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 对图像进行进行线性拉伸,Alpha值保持不变
ColorModel cm = ColorModel.getRGBdefault();
for (int i = 0; i < iw * ih; i++) {
int alpha = cm.getAlpha(pixels[i]);
int red = cm.getRed(pixels[i]);
int green = cm.getGreen(pixels[i]);
int blue = cm.getBlue(pixels[i]);
// 增加了图像的亮度
red = (int) (1.1 * red + 30);
green = (int) (1.1 * green + 30);
blue = (int) (1.1 * blue + 30);
if (red >= 255) {
red = 255;
}
if (green >= 255) {
green = 255;
}
if (blue >= 255) {
blue = 255;
}
pixels[i] = alpha << 24 | red << 16 | green << 8 | blue;
}
// 将数组中的象素产生一个图像
return ImageIOHelper.imageProducerToBufferedImage(new MemoryImageSource(iw, ih, pixels, 0, iw));
}
/** 转换为黑白灰度图 */
public BufferedImage grayFilter() {
ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);
ColorConvertOp op = new ColorConvertOp(cs, null);
return op.filter(image, null);
}
/** 平滑缩放 */
public BufferedImage scaling(double s) {
AffineTransform tx = new AffineTransform();
tx.scale(s, s);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
return op.filter(image, null);
}
public BufferedImage scale(Float s) {
int srcW = image.getWidth();
int srcH = image.getHeight();
int newW = Math.round(srcW * s);
int newH = Math.round(srcH * s);
// 先做水平方向上的伸缩变换
BufferedImage tmp=new BufferedImage(newW, newH, image.getType());
Graphics2D g= tmp.createGraphics();
for (int x = 0; x < newW; x++) {
g.setClip(x, 0, 1, srcH);
// 按比例放缩
g.drawImage(image, x - x * srcW / newW, 0, null);
}
// 再做垂直方向上的伸缩变换
BufferedImage dst = new BufferedImage(newW, newH, image.getType());
g = dst.createGraphics();
for (int y = 0; y < newH; y++) {
g.setClip(0, y, newW, 1);
// 按比例放缩
g.drawImage(tmp, 0, y - y * srcH / newH, null);
}
return dst;
}
}
package com.ocr;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.ImageProducer;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.Locale;
import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.metadata.IIOMetadata;
import javax.imageio.stream.ImageInputStream;
import javax.imageio.stream.ImageOutputStream;
import javax.swing.JOptionPane;
import com.sun.media.imageio.plugins.tiff.TIFFImageWriteParam;
public class ImageIOHelper {
public ImageIOHelper() {
}
public static File createImage(File imageFile, String imageFormat) {
File tempFile = null;
try {
Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName(imageFormat);
ImageReader reader = readers.next();
ImageInputStream iis = ImageIO.createImageInputStream(imageFile);
reader.setInput(iis);
// Read the stream metadata
IIOMetadata streamMetadata = reader.getStreamMetadata();
// Set up the writeParam
TIFFImageWriteParam tiffWriteParam = new TIFFImageWriteParam(Locale.US);
tiffWriteParam.setCompressionMode(ImageWriteParam.MODE_DISABLED);
// Get tif writer and set output to file
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("tiff");
ImageWriter writer = writers.next();
BufferedImage bi = reader.read(0);
IIOImage image = new IIOImage(bi, null, reader.getImageMetadata(0));
tempFile = tempImageFile(imageFile);
ImageOutputStream ios = ImageIO.createImageOutputStream(tempFile);
writer.setOutput(ios);
writer.write(streamMetadata, image, tiffWriteParam);
ios.close();
writer.dispose();
reader.dispose();
} catch (Exception exc) {
exc.printStackTrace();
}
return tempFile;
}
public static File createImage(BufferedImage bi) {
File tempFile = null;
try {
tempFile = File.createTempFile("tempImageFile", ".tif");
tempFile.deleteOnExit();
TIFFImageWriteParam tiffWriteParam = new TIFFImageWriteParam(Locale.US);
tiffWriteParam.setCompressionMode(ImageWriteParam.MODE_DISABLED);
// Get tif writer and set output to file
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("tiff");
ImageWriter writer = writers.next();
IIOImage image = new IIOImage(bi, null, null);
tempFile = tempImageFile(tempFile);
ImageOutputStream ios = ImageIO.createImageOutputStream(tempFile);
writer.setOutput(ios);
writer.write(null, image, tiffWriteParam);
ios.close();
writer.dispose();
} catch (Exception exc) {
exc.printStackTrace();
}
return tempFile;
}
public static File tempImageFile(File imageFile) {
String path = imageFile.getPath();
StringBuffer strB = new StringBuffer(path);
strB.insert(path.lastIndexOf('.'), 0);
return new File(strB.toString().replaceFirst("(?<=//.)(//w+)$", "tif"));
}
public static BufferedImage getImage(File imageFile) {
BufferedImage al = null;
try {
String imageFileName = imageFile.getName();
String imageFormat = imageFileName.substring(imageFileName.lastIndexOf('.') + 1);
Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName(imageFormat);
ImageReader reader = readers.next();
if (reader == null) {
JOptionPane.showConfirmDialog(null,
"Need to install JAI Image I/O package./nhttps://jai-imageio.dev.java.net");
return null;
}
ImageInputStream iis = ImageIO.createImageInputStream(imageFile);
reader.setInput(iis);
al = reader.read(0);
reader.dispose();
} catch (IOException ioe) {
System.err.println(ioe.getMessage());
} catch (Exception e) {
System.err.println(e.getMessage());
}
return al;
}
public static BufferedImage imageToBufferedImage(Image image) {
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null),
BufferedImage.TYPE_INT_RGB);
Graphics2D g = bufferedImage.createGraphics();
g.drawImage(image, 0, 0, null);
return bufferedImage;
}
public static BufferedImage imageProducerToBufferedImage(ImageProducer imageProducer) {
return imageToBufferedImage(Toolkit.getDefaultToolkit().createImage(imageProducer));
}
public static byte[] image_byte_data(BufferedImage image) {
WritableRaster raster = image.getRaster();
DataBufferByte buffer = (DataBufferByte) raster.getDataBuffer();
return buffer.getData();
}
}
package com.ocr;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.jdesktop.swingx.util.OS;
public class OCR {
private final String LANG_OPTION = "-l";
private final String EOL = System.getProperty("line.separator");
private String tessPath = new File("tesseract").getAbsolutePath();
//private String tessPath="C://Program Files (x86)//Tesseract-OCR//";
public String recognizeText(File imageFile, String imageFormat) throws Exception {
File tempImage = ImageIOHelper.createImage(imageFile, imageFormat);
File outputFile = new File(imageFile.getParentFile(), "output");
StringBuffer strB = new StringBuffer();
List<String> cmd = new ArrayList<String>();
if (OS.isWindowsXP()) {
cmd.add(tessPath + "//tesseract");
//cmd.add(tessPath + "//Tesseract-OCR");
} else if (OS.isLinux()) {
cmd.add("tesseract");
} else {
//cmd.add(tessPath + "//Tesseract-OCR")
cmd.add(tessPath + "//tesseract");
}
cmd.add("");
cmd.add(outputFile.getName());
cmd.add(LANG_OPTION);
cmd.add("chi_sim");
cmd.add("eng");
ProcessBuilder pb = new ProcessBuilder();
pb.directory(imageFile.getParentFile());
cmd.set(1, tempImage.getName());
pb.command(cmd);
pb.redirectErrorStream(true);
Process process = pb.start();
//tesseract.exe 1.jpg 1 -l chi_sim
int w = process.waitFor();
// delete temp working files
tempImage.delete();
if (w == 0) {
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(outputFile
.getAbsolutePath()
+ ".txt"), "UTF-8"));
String str;
while ((str = in.readLine()) != null) {
strB.append(str).append(EOL);
}
in.close();
} else {
String msg;
switch (w) {
case 1:
msg = "Errors accessing files. There may be spaces in your image's filename.";
break;
case 29:
msg = "Cannot recognize the image or its selected region.";
break;
case 31:
msg = "Unsupported image format.";
break;
default:
msg = "Errors occurred.";
}
tempImage.delete();
throw new RuntimeException(msg);
}
new File(outputFile.getAbsolutePath() + ".txt").delete();
return strB.toString();
}
}
package com.ocr;
import java.io.File;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
OCR ocr=new OCR();
try {
String maybe = new OCR().recognizeText(new File("E://temp//222.jpg"), "jpg");
System.out.println(maybe);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
由于可以第三方包加起来有点大,告诉大家一个网站www.findjar.com去里面找你想要的包吧,需要相关包的留下邮件吧
java 目录结构如上图
效果图:
解析出来的效果
- 上一篇:SQL与NO SQL
- 下一篇:oracle 锁表查询 和 解锁
-
226楼
wwy545923461 2012-07-07 19:46发表
[回复]
[引用] [举报]
- 楼主我也要啊 麻烦发给我一份灰常感谢!
-
225楼
allen521520 2012-07-04 16:45发表
[回复]
[引用] [举报]
- 你好楼主,麻烦发我一份吧 谢谢 !邮箱:71218605@qq.com
-
224楼
Chen112147 2012-06-14 21:40发表
[回复]
[引用] [举报]
- 280129727@qq.com 楼主发给一份给我吧
-
223楼
shuyuxinghun 2012-06-06 09:24发表
[回复]
[引用] [举报]
- 楼主能发一份给偶么,非常感谢,邮箱:361908353@qq.com
-
221楼
lbx967 2012-05-31 09:35发表
[回复]
[引用] [举报]
-
楼主 这个能用作名片识别么。
还有就是 路径是对的 但是总抛异常
Errors accessing files. There may be spaces in your image's filename.。 求指导。
-
218楼
javayuan920 2012-04-16 17:06发表
[回复]
[引用] [举报]
- 我自己下载到了,非常感谢楼主分享!!
-
217楼
javayuan920 2012-04-16 16:32发表
[回复]
[引用] [举报]
-
楼主:麻烦你给我发一份呗。我继续研究啊!
308964086@qq.com。谢了!
-
215楼
pxsh319_163com 2012-04-04 20:40发表
[回复]
[引用] [举报]
- 麻烦楼主给我发一份好吗,邮箱地址644724721@qq.com,非常感谢您。
-
214楼
pxsh319_163com 2012-04-04 20:39发表
[回复]
[引用] [举报]
- 麻烦楼主让给我发一份好吗?邮箱地址644724721@qq.com,谢谢您。
-
213楼
xiaozj886 2012-04-02 15:36发表
[回复]
[引用] [举报]
-
终于找到错误了,原因是windows平台的tesseract.exe需要VC++2008运行库支持。需要下载安装:
http://www.xdowns.com/soft/softdown.asp?softid=39360
-
211楼
xiaozj886 2012-04-02 14:37发表
[回复]
[引用] [举报]
-
怎么报这个错误了,地址我也改了,还是一样:
CreateProcess: E:\workspace\map\tesseract\tesseract 10.tif output -l chi_sim eng error=14001
-
210楼
linets 2012-03-28 18:27发表
[回复]
[引用] [举报]
- 弱弱的问一句楼主 ImageIOHelper ImageFilter 这两个类存在的意义?从代码中前者是用到了 只是单纯的copy一下原图片吗? 但是后者针对与图片的增强功能 好像没有被引用..
-
205楼
yaerfeng 2012-02-07 20:40发表
[回复]
[引用] [举报]
-
回复zhoushuyan:li_zhuangs@163.com谢谢!!!
-
Re:
zhoushuyan 2012-02-08 10:40发表
[回复]
[引用] [举报]
- 回复yaerfeng:http://download.csdn.net/detail/zhoushuyan/4050580
-
204楼
Baswa_java 2012-02-06 12:39发表
[回复]
[引用] [举报]
-
正在学习OCR,楼主发个完成DEMO给我可以吗?我得邮箱
Baswa_java@qq.com,非常感谢-
Re:
zhoushuyan 2012-02-07 18:55发表
[回复]
[引用] [举报]
- 回复Baswa_java:已经发生,一直到174楼,请收到的转发一下吧
-
203楼
yangyawei2014 2012-02-01 17:01发表
[回复]
[引用] [举报]
- 楼主,方便的话发份源代码给我吧,不胜感激!yjnso@sina.com
-
202楼
zhengjack 2012-01-31 05:30发表
[回复]
[引用] [举报]
-
楼主 不知道您最近在不在线。如果在线请传给我一份代码吧:zhengjack1987@gmail.com
谢谢
我用中文的时候总有Thread 1: Program received signal: "EXC_BAD_ACCESS". 不知道为什么,请教一下您。
-
199楼
wangtiantian23 2012-01-17 16:13发表
[回复]
[引用] [举报]
-
小妹请求楼主发一份完整的源代码。
QQ:195001405
邮箱:195001405@qq.com
-
196楼
bensidiyu 2012-01-14 09:36发表
[回复]
[引用] [举报]
-
您好,可以发一份完整demo包含jar包的吗? 谢谢楼主了!
邮箱: cici10957915@qq.com
再次感谢!
-
194楼
zhengweiaianqi 2012-01-11 18:09发表
[回复]
[引用] [举报]
- OCR 刚刚打错了,不好意思 。
-
193楼
zhengweiaianqi 2012-01-11 18:08发表
[回复]
[引用] [举报]
-
您好,可以发一份ORC的完整demo吗? 谢谢楼主了。
邮箱: 1150437877@qq.com
再次感谢了
-
188楼
jijijijijijijijijija 2012-01-06 18:30发表
[回复]
[引用] [举报]
- 对了,邮箱是1552688123@qq.com
-
187楼
jijijijijijijijijija 2012-01-06 18:29发表
[回复]
[引用] [举报]
- 楼主最近忙这个啊!!!发一个完整的过来吧,别人都发了啊,%>_<%
-
180楼
mickeal001 2011-12-22 16:22发表
[回复]
[引用] [举报]
- 楼主给我发一份吧,万分感谢。我的邮箱是wuyonggang0123@126.com.
-
179楼
yackl 2011-12-20 16:07发表
[回复]
[引用] [举报]
-
不得不说
图像过滤,增强OCR识别成功率,这个类貌似没多大作用...两幅图片的测试效果都一样-
Re:
zhoushuyan 2012-02-07 18:56发表
[回复]
[引用] [举报]
-
回复yackl:这个只是学习研究下,识别比较高的库都是要收钱的
别人不给用
-
177楼
s519886099 2011-12-13 18:19发表
[回复]
[引用] [举报]
- 楼主,能发份完整的项目给我吗,感激不尽!zpeg@qq.com
-
174楼
bobo03041265 2011-12-12 11:31发表
[回复]
[引用] [举报]
-
qingbo9527@163.com
THX!
-
170楼
biaoge226387282 2011-12-04 14:02发表
[回复]
[引用] [举报]
- ttbzyzy@163.com 能不能给我份 jar包 多谢
-
169楼
ac123ac 2011-12-03 21:26发表
[回复]
[引用] [举报]
- 能发我一份完整的开发包吗,我也正在研究中,想借鉴一下,497079109@qq.com,谁有了,发我一份,谢谢!
-
165楼
xiong_studyIT 2011-11-24 10:29发表
[回复]
[引用] [举报]
- 求楼主赐完整代码,谢谢 邮箱xiong_jx@foxmail.com
-
164楼
xiong_studyIT 2011-11-24 10:23发表
[回复]
[引用] [举报]
- 解析出来的是乱码
-
162楼
it_java_lx 2011-11-22 18:12发表
[回复]
[引用] [举报]
- 发一份给我,急用!谢谢 邮箱:sendhuangyh@gmail.com
-
160楼
lxy7869251 2011-11-21 11:31发表
[回复]
[引用] [举报]
-
亲,给我发一份好吗?谢谢!
我邮箱569326592@qq.com
-
159楼
lshguang89 2011-11-16 16:25发表
[回复]
[引用] [举报]
-
请也发我一份 谢谢!ares89@126.com
另外 楼主何不把文件传到一个共享空间呢,方便大家下载啦
-
156楼
bingheshifu 2011-11-14 22:54发表
[回复]
[引用] [举报]
- 老大,请发一份给我:980098333@qq.com,感激不尽~~~
-
155楼
book_iveniven 2011-11-10 17:55发表
[回复]
[引用] [举报]
- 大侠,麻烦给俺发一份,iveniven@163.com 谢了先
-
154楼
danp1 2011-11-10 11:19发表
[回复]
[引用] [举报]
- 现在在用这个技术希望能给我发一份,谢谢!我的邮箱 367038744@qq.com 或danshanpeng@163.com
-
153楼
gdw1876 2011-11-09 17:34发表
[回复]
[引用] [举报]
- 大哥!!!最近项目急需使用,能否给我的邮件发一份可以测试通过的。gdw1876@126.com 小弟在此不胜感激。
-
152楼
p88263286 2011-11-09 11:00发表
[回复]
[引用] [举报]
- 您好,我最近在做Java的汉字识别方面的工作,想参照一下你的研究成果,如果可以的话,把你的源代码发给我一份,谢谢!erenzone@gmail.com
-
151楼
leo20060401 2011-11-07 16:07发表
[回复]
[引用] [举报]
-
楼主麻烦发一份给我吧
leo20060401@vip.qq.com
大恩不言谢,不胜感激!!
-
149楼
wangbo7280 2011-11-03 16:09发表
[回复]
[引用] [举报]
-
楼主给我发一份吧,我想研究研究。谢谢啦。
w_wangbo@126.com 感激不尽-
Re:
zhoushuyan 2011-11-03 17:07发表
[回复]
[引用] [举报]
- 回复wangbo7280:已经发送完整的项目
-
148楼
liuyc1985 2011-10-31 16:01发表
[回复]
[引用] [举报]
-
感激楼主的开源胸怀,同样求源码一份,非常感谢knowledge926@163.com
-
Re:
zhoushuyan 2011-11-03 17:07发表
[回复]
[引用] [举报]
- 回复liuyc1985:已经发送完整的项目
-
147楼
gdw1876 2011-10-31 10:53发表
[回复]
[引用] [举报]
-
感谢大侠跟我们分享了这么好的学习资料!本人最近项目要用到此技术,恳请大侠发一份完整的源码给我,我的邮箱gdw1876@126.com,再次感谢楼主!
-
Re:
zhoushuyan 2011-11-03 17:08发表
[回复]
[引用] [举报]
- 回复gdw1876:已经发送完整的项目
-
146楼
zhuzhudeailnn 2011-10-29 09:32发表
[回复]
[引用] [举报]
- 大侠,我也要一份哇,最近一直在找关于java在数字图像处理中的应用,一直都找不到合适的资料,好不容易找到 你这里,一定给我发一份哇~~~谢谢了,非常感谢哇406236443@qq.com
-
145楼
xzy520zj 2011-10-28 16:54发表
[回复]
[引用] [举报]
-
你好!能给我发一份完整的吗?非常感谢!1789769885@qq.com
-
Re:
zhoushuyan 2011-11-03 17:08发表
[回复]
[引用] [举报]
- 回复xzy520zj:已经发送完整的项目
-
144楼
li545540328 2011-10-27 22:36发表
[回复]
[引用] [举报]
- 感谢楼主跟我们分享了这么好的学习资料!本人也正在努力地研究之中,恳请楼主发一份完整的源码给我,我的邮箱545540328@qq.com,再次感谢楼主!
-
143楼
reakeng 2011-10-24 11:23发表
[回复]
[引用] [举报]
- 麻烦哥哥们给我发一份demo和相关包,谢谢,我也正在调研这个,要用到这门技术 reakeng@163.com 365290522@qq.com这两个邮箱都行
-
142楼
dadalielie 2011-10-20 12:31发表
[回复]
[引用] [举报]
- 楼主,能不能发给我一份完整的?我这几天在弄这个,想参考一下,谢谢楼主啦~~我的邮箱是352459117@qq.com
-
141楼
wuhongyu1985 2011-10-19 23:30发表
[回复]
[引用] [举报]
- 麻烦楼主源码给我发一份吧,万分感谢!我的邮箱:1985why001@163.com
-
135楼
showhight03 2011-09-30 10:23发表
[回复]
[引用] [举报]
- 拜膜楼主,希望能发我一份完成源码,yonas@sina.cn,不胜感激
-
134楼
BigBird2012 2011-09-28 13:27发表
[回复]
[引用] [举报]
-
麻烦您把源码发给我一份,做个参考!谢谢!
-
Re:
BigBird2012 2011-09-28 14:54发表
[回复]
[引用] [举报]
- 回复BigBird2012:我邮箱290167875@qq.com
-
133楼
zhanghuajiecoo8 2011-09-15 17:26发表
[回复]
[引用] [举报]
- 最近项目急需使用,能否给我的邮件发一份可以测试通过的。jiejing060922@126.com
-
131楼
recobawhy123 2011-09-14 16:39发表
[回复]
[引用] [举报]
-
里面的 ImageFilter 咋用啊, 告诉我一下
我邮箱 recobawhy@126.com
-
130楼
kill5561225 2011-09-13 15:06发表
[回复]
[引用] [举报]
- 请楼主给我也发一份 405989455@qq.com
-
129楼
dongshilongdsl 2011-09-10 22:52发表
[回复]
[引用] [举报]
- 楼主能发一份给偶么,非常感谢,邮箱:584561477@qq.com
-
127楼
lovejie8525 2011-09-02 10:10发表
[回复]
[引用] [举报]
-
你好楼主,wsj-8525@163.com
麻烦发一下,谢谢。