最近参加一个软件技能大赛,选题为文字提取,需要用到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());  
        }  
    }
}


注意代码里图片文件夹的路径需要修改。

附测试图片和运行结果: