Tess4J图像、pdf 文字识别,并解决遇到的3个错误

1.引入依赖

<!--  Tess4J图像识别 -->
		<dependency>
		    <groupId>net.sourceforge.tess4j</groupId>
		    <artifactId>tess4j</artifactId>
		    <version>4.3.1</version>
		</dependency>

2.识别代码

        @Test
	public void t1(){
		
	//设置要识别文件的路径
	String path = "D:\\resource\\tess4j";  	
    	File file = new File(path + "\\t1.jpg");
    	
        ITesseract instance = new Tesseract();

        //设置训练库的位置
        instance.setDatapath("D:\\resource\\Tess4J-3.4.8-src\\Tess4J\\tessdata");
        instance.setLanguage("chi_sim");
        
        String result = null;
        try {
             result =  instance.doOCR(file);
        } catch (TesseractException e) {
            e.printStackTrace();
        }
        System.out.println("result:");
        System.out.println(result);
    }

3.解决遇到的错误

1)这个错误是设置训练库路径错误看报错的第一行

(网上很多文章说训练库如果在 D:\resource\Tess4J-3.4.8-src\Tess4J\tessdata\eng.traineddata这个目录

则设置instance.setDatapath("D:\\resource\\Tess4J-3.4.8-src\\Tess4J"); 这个方法在我这里是错误的。

我的正确的设置为 instance.setDatapath("D:\\resource\\Tess4J-3.4.8-src\\Tess4J\\tessdata");

instance.setLanguage("eng"); //这个eng是文件eng.traineddata,不需要写后缀

Error opening data file D:\resource\Tess4J-3.4.8-src\Tess4J/chi_sim.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.
Failed loading language 'chi_sim'
Tesseract couldn't load any languages!

2)这个错误我也遇到了,我的不需要下载xxx.dll,xx.dll ,我的不需要visual 2015/2017(我的是vs2010版本)

这个错误是在我引用<version>4.2.1</version>版本时候遇到的,估计是老版本会报错

在我更新到<version>4.3.1</version>版本后错误就解决了

10:15:24.633 [main] ERROR net.sourceforge.tess4j.Tesseract - null
java.lang.NullPointerException: null
    at net.sourceforge.tess4j.Tesseract.dispose(Tesseract.java:826)
    at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:239)
    at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:194)
    at com.ch.variflightspider.common.utils.Tess4jUtils.getImgContent(Tess4jUtils.java:114)
    at com.ch.variflightspider.common.utils.Tess4jUtils.main(Tess4jUtils.java:123)
10:15:24.637 [main] ERROR com.ch.sunyong.common.utils.Tess4jUtils - Tess4jUtils getImgContent exception: 
net.sourceforge.tess4j.TesseractException: java.lang.NullPointerException
    at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:245)
    at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:194)
    at com.ch.variflightspider.common.utils.Tess4jUtils.getImgContent(Tess4jUtils.java:114)
    at com.ch.variflightspider.common.utils.Tess4jUtils.main(Tess4jUtils.java:123)
Caused by: java.lang.NullPointerException: null

3)Exception in thread “main” java.lang.Error: Invalid memory access

eng.traineddata (训练库)路径不对

4.我找到的中文库下载地址

https://github.com/tesseract-ocr/tessdata/blob/master/chi_sim.traineddata

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值