图像文字识别(四):java调用tess4j识别图像文字

转自:https://blog.csdn.net/a745233700/article/details/80203340

java调用tess4j识别图像文字

  Tesseract-OCR支持中文识别,并且开源和提供全套的训练工具,是快速低成本开发的首选。前面记录过在java中调用tesseract-orc,该方法的原理是通过在java中调用cmd命令行,来执行tesseract,但是该方式需要下载软件,在电脑上安装环境,移植性不高。

  而Tess4J则是Tesseract在Java PC上的应用。如果使用Tess4J只需要下载相关Jar包,导入项目,再把项目封装好就可以处处运行了,可移植性比较好。Tess4J在英文和数字识别中性能比较好,但是在中文识别中,无论速度还是识别率还是较弱,因此需要针对场景进行训练,才能获得较好结果。

  这篇博客简单记录一下在java中通过调用tess4j的方式识别图片的文字内容。


步骤:

(1)下载tess4j源码包:https://sourceforge.net/projects/tess4j/

tessdata下默认为英语库,中文库下载地址:https://github.com/tesseract-ocr/tessdata/blob/master/chi_sim.traineddata

其他库的下载地址:https://github.com/tesseract-ocr/tessdata

下载完的tess4j资源包目录如下:


(2)新建一个java工程:

使用Build Path -> configure build path导入dist目录下的tess4j.jar 和 lib目录下的所有jar包,如下图:

 


如果是maven工程则导入以下maven依赖。

     <dependency>
         <groupId>net.sourceforge.tess4j</groupId>
         <artifactId>tess4j</artifactId>
         <version>3.2.1</version>
     </dependency>


(3)把tessdata文件夹复制到项目的根目录下(与src目录同级),如下图:

如果tessdata目录没有配置到根目录下,就需要在代码中指定datePath。

 

(4)编写测试类:

    import java.io.File;
    import net.sourceforge.tess4j.ITesseract;
    import net.sourceforge.tess4j.Tesseract;
    import net.sourceforge.tess4j.TesseractException;
     
    /**
    * 类说明 : tess4j测试类
    */
    public class OCRDemo {
       public static void main(String[] args) throws TesseractException {
           
            ITesseract instance = new Tesseract();
            //如果未将tessdata放在根目录下需要指定绝对路径
            //instance.setDatapath("the absolute path of tessdata");
            
            //如果需要识别英文之外的语种,需要指定识别语种,并且需要将对应的语言包放进项目中
            instance.setLanguage("chi_sim");
            
            // 指定识别图片
            File imgDir = new File("C://Users//1_20180208150251_x4hzz//1.png");
            long startTime = System.currentTimeMillis();
            String ocrResult = instance.doOCR(imgDir);
            
            // 输出识别结果
            System.out.println("OCR Result: \n" + ocrResult + "\n 耗时:" + (System.currentTimeMillis() - startTime) + "ms");
        }
    }


(5)图片素材与识别结果:

可以看到,tess4j在中文识别时,无论速度还是识别率还是较弱,需要针对场景进行训练,才能获得较好结果。
---------------------
作者:a745233700
来源:CSDN
原文:https://blog.csdn.net/a745233700/article/details/80203340
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值