OCR图像识别技术的JAVA实现(二)之Tess4J的使用

上一篇blog介绍了JAVA使用OCR图像识别技术中TESSERACT-OCR。其本质就是用我们的Java使用cmd命令来调用TESSERACT-OCR的客户端,这里就必须在电脑上安装TESSERACT-OCR,但在实际使用上,感觉很不方便,接下来介绍的Tess4J就主要是针对Java封装的API,就不再需要安装TESSERACT-OCR。

一. 下载Tess4J相关Jar包和源码

http://download.csdn.net/download/weistin/10166503
目前最新版本为Tess4J-3.4.2-src。
下载完成后,解压:
这里写图片描述
二. Tess4j的使用
1. 新建一个JAVA 项目,项目中新建lib文件夹,tessdata文件夹(用于存放OCR语言库文件,默认只有英文包,其他语言包或训练包需要自行下载)。
2. 将上图中的lib文件夹的文件全部拷入到刚刚新建项目的lib文件夹里。
3. 将Tess4J-3.4.2-src/Tess4J/dist下的tess4j-3.4.2.jar放入lib文件夹下。
这里写图片描述
4. 将添加进的jar加入到项目的build path中。jar包结果如下:
这里写图片描述
5. 项目结构:
这里写图片描述

  1. tess4J的使用
    tess4J代码很简单,核心代码短短数句:
package com.liping.test;

import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import net.sourceforge.tess4j.util.LoadLibs;

import java.io.File;
import java.io.IOException;

/**
 * Tess4J测试类
 *
 * @author Felix Li
 * @create 2017-12-20-11:38
 */
public class Tess4JTest {

    public static void main(String[] args){

        File file = new File("C://Program Files (x86)//Tesseract-OCR//shouye.png");
        ITesseract instance = new Tesseract();

        /**
         *  获取项目根路径,例如: D:\IDEAWorkSpace\tess4J
         */
        File directory = new File("");// 参数为空
        String courseFile = null;
        try {
            courseFile = directory.getCanonicalPath();
        } catch (IOException e) {
            e.printStackTrace();
        }

        //Set the tessdata path
        instance.setDatapath(courseFile + "\\tessdata");

        instance.setLanguage("chi_sim");//chi_sim :简体中文, eng
        String result = null;
        try {
            long startTime = System.currentTimeMillis();
             result =  instance.doOCR(file);
            long endTime = System.currentTimeMillis();
            System.out.println("Time is:" + (endTime - startTime) + " 毫秒");
        } catch (TesseractException e) {
            e.printStackTrace();
        }
        System.out.println("result: " + result);
    }

}

三. 异常处理
1. Exception in thread “main” java.lang.UnsatisfiedLinkError: 找不到指定模块
这个异常是 JNI load本地.dll文件时未找到而抛出的异常,
处理方法:将gsdll64.dll和libtesseract3051.dll拷贝到 C:/WINDOWS/system32/下
demo源码

  • 0
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值