java识别验证码,ORC技术的一个很奇特的问题

qiqi521 发布于 2012/09/16 19:42
阅读 3K+
收藏 0

这是一小段代码

1,public class OCR {
2,//protected transient final Logger logger = LoggerFactory.getLogger(this.getClass());
3,private final String LANG_OPTION = "-l";
4,private final String EOL = System.getProperty("line.separator");
5,private String tessPath = new File("tesseract").getAbsolutePath();

6,public String recognizeText(File imageFile, String imageFormat)
7,throws Exception {
8,File tempImage = ImageIOHelper.createImage(imageFile, imageFormat);

9,File outputFile = new File(imageFile.getParentFile(), "output");
10,StringBuffer strB = new StringBuffer();

11,List<String> cmd = new ArrayList<String>();
12,cmd.add(tessPath + "\\tesseract");
13,cmd.add("");
14,cmd.add(outputFile.getName());
15,cmd.add(LANG_OPTION);
16,cmd.add("eng");

17,ProcessBuilder pb = new ProcessBuilder();
18,pb.directory(imageFile.getParentFile());

19,cmd.set(1, tempImage.getName());
20,pb.command(cmd);
21,pb.redirectErrorStream(true);
22,Process process = pb.start();

请问第5行和第12行用到的tessPath是什么东东呢?程序运行时总在这里报错?我这段代码是在网上copy的,是不是得修改这个东东呢

以下是问题补充:

@qiqi521:程序会报这样的错误 Cannot run program "D:\java_program\corejava\tesseract\tesseract" (in directory "D:\"): CreateProcess error=3, ??????? (2012/09/16 20:03)
加载中
0
leo108
leo108
楼主不会JAVA?
qiqi521
qiqi521
请问这是什么问题呢?我刚学java,不很懂
0
雪人
雪人

这段代码是通过java调用本地命令行进行识别,需要在本地安装  Tesseract-OCR.

tessPath 应该是 tesseract命令 的根目录.

qiqi521
qiqi521
哦,谢谢你的指教,虽然还是不很理解~
返回顶部
顶部