最近参加一个软件技能大赛,选题为文字提取,需要用到ocr引擎。使用语言为java。
java实现图像文字提取有两种方法:
1.tesseract-ocr 原理为利用java代码启动外部exe程序,对图像进行识别。
2.tess4j 原理为利用java程序导入jar包进行识别
接下来为tess4j+eclipse的配置过程:
1.下载tess4j包,并解压
csdn资源地址:
百度云链接:https://pan.baidu.com/s/1yQF2t6h5SaC5d-e5Rjyh-g
密码:hw4m
2.配置eclipse
将tess4j作为一个用户库配置进Eclipse,这样我们在开发项目时就不用每次都配置相关文件了。打开Eclipse,然后在菜单中选择 Window->Preferences,如图:
导航到Java->Build Path->User Libraries,然后点击New
输入一个名字,比如:Tess4j,作为你的新的库名
选择你刚才创建的用户库,然后点击Add External JARs
浏览到你tess4j的解压目录,将lib下的所有jar包全部导入进来,然后找到并展开jna-4.1.0.jar,选择 Native library location ,之后点击 Edit (jna包的版本可能会变)
选择 External Folder,然后浏览选择tess4j解压文件夹下的~\lib\win32-x86-64(这里如果是32位操作系统则选择~\lib\win32-x86)
配置完成后如下图:
3.新建工程,测试代码
新建工程,将src 、tessdata拷贝到工程文件夹下
然后右击工程->build path ->add libraries,将刚刚配置好的用户库添加到工程
此时src里的代码将不会报错,然后新建一个类,运行下列测试代码(代码非原创):
package TestTess4j01;
import java.io.File;
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
public class Test01 {
public static void main(String[] args) {
//图片所在文件夹
testTess4j("E:\\test");
}
public static void testTess4j(String filePath){
File root = new File(filePath);
ITesseract instance = new Tesseract();
try {
File[] files = root.listFiles();
for (File file : files) {
String result = instance.doOCR(file);
String fileName = file.toString().substring(file.toString().lastIndexOf("\\")+1);
System.out.println("图片名:" + file.toString() +" 识别结果:"+result);
}
} catch (TesseractException e) {
System.err.println(e.getMessage());
}
}
}
注意代码里图片文件夹的路径需要修改。
附测试图片和运行结果: