Java中识别文字比较简单,使用的软件是tesseractocr(使用的版本是3.02,3以后的版本才支持中文),这个软件需要安装在本地电脑中,安装的过程中全部都按照默认进行安装(以便于Java直接调用),
下载地址http://download.csdn.net/detail/wsk1103/9731338。
该软件默认的识别的是英文,如果相要能识别中文,需要将中文的训练文本chi_sim.traineddata存放到C:\Program Files (x86)\Tesseract-OCR\tessdata中,其中该中文训练文本解压后39M左右,
下载地址http://download.csdn.net/detail/wsk1103/9731335
,遗憾的是如果想要识别中英文的话,还得继续谷歌搜索一下,在这里就不列出来了。
Java中识别的话很简单,只需要下面这几行代码就可以了(官方给出来的代码)
1 File imageFile=new File(path); 2 if(!imageFile.exists()){ 3 return"图片不存在"; 4 } 5 Tesseractinstance=Tesseract.getInstance(); 6 instance.setDatapath("C:\\ProgramFiles(x86)\\Tesseract-OCR\\tessdata");//设置训练库的位置 7 instance.setLanguage("chi_sim");//中文识别 8 String result=instance.doOCR(imageFile);
想要实现上面的这些代码,需要导入的包有一些,
下载地址:http://download.csdn.net/detail/wsk1103/9731338
关于异常
1. Exception in thread “main” java.lang.Error: Invalid memory access
这个异常表示没有设置训练库的位置
2. 不是有效的win32程序
尝试重新安装一下tesseractocr
安装的路径默认就可以了