package orc;
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;
//命令行 tesseract C:\\ocrxxxx\\2.png D:\\ww -l chi_sim eng
//tesseract C:\\ocrxxxx\\2.png D:\\ww -l eng
public class OCR {
private final String LANG_OPTION = "-l"; // 英文字母小写l,并非数字1
private final String EOL = System.getProperty("line.separator");
private String tessPath = "C://Program Files (x86)//Tesseract-OCR";
// private String tessPath = new File("tesseract").getAbsolutePath();
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 cmd = new ArrayList();
if (OS.isWindowsXP()) {
cmd.add(tessPath + "//tesseract");
} else if (OS.isLinux()) {
cmd.add("tesseract");
} else {
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());
// pb.directory(new File(tessPath));
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();
// 删除临时正在工作文件
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 recongnize 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();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
tesseract相关文件包.rar (16个子文件)
tesseract相关文件包
swingx-1.6.1.jar.zip 1.17MB
tesseract-ocr
tessdata
chi_sim.traineddata 38.12MB
grc.traineddata 8.93MB
orc源代码
bin
orc
ImageIOHelper.class 3KB
OcrTest.class 1KB
OCR.class 4KB
.settings
org.eclipse.jdt.core.prefs 598B
src
orc
OCR.java 2KB
ImageIOHelper.java 2KB
OcrTest.java 498B
.project 379B
.classpath 452B
tesseract-ocr-3.02.grc.tar.gz 3.26MB
jai_imageio-1.1.jar (1).zip 1MB
tesseract-ocr-3.02.chi_sim (1).tar.gz 17.09MB
tesseract-ocr-setup-3.02.02.exe 12.9MB
共 16 条
- 1
资源评论
jstaxi
- 粉丝: 9
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java和Javascript的工程建设综合管理系统材料管理模块设计源码 - material
- c51_2_2.c
- ASCII American Standard Code for Information Interchange
- 一个chm格式的 SQL 函数手册-SQL语言手册文档
- 计算当前月份的天数和剩余天数
- 基于ARM的指令调度和延迟分支
- 基于Vue和TypeScript的极简聊天应用设计源码 - HasChat
- 基于Vue2全家桶和Zcool数据的图片收集网站设计源码 - cool-picture
- 基于C和C++的二维绘制工具设计源码 - DrawPro
- Object.defineProperty 的 IE 补丁object-defineproperty-ie-master.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功