JAVA识别图片中的文字

最近在需求上有一个识别图片中的文字功能,查询了不少资料,发现可以使用tess4j识别图像文字:话不多说现在开始:

首先创建Spring Boot项目:导入以下依赖

  net.sourceforge.tess4j

  tess4j

  3.2.1

然后去下面的网址下载一个tess4j源码包:https://sourceforge.net/projects/tess4j/

在下载中文识别包:https://github.com/tesseract-ocr/tessdata/blob/master/chi_sim.traineddata

把下载好的中文识别包放入到tessdata包下

好了现在来编写测试类

=======================================================================

import net.sourceforge.tess4j.ITesseract;

import net.sourceforge.tess4j.Tesseract;

import net.sourceforge.tess4j.TesseractException;

import java.io.File;

/**

* 类说明 :图片转文字功能

*/

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("src\\main\\resources\\jpg\\测试.png");

        long startTime = System.currentTimeMillis();

        String ocrResult = instance.doOCR(imgDir);

        // 输出识别结果

        System.out.println("OCR Result: \n" + ocrResult +"\n 耗时:" + (System.currentTimeMillis() - startTime) +"ms");

    }

}

====================================================================

效果如下


但是有个缺点是tess4j的中文识别效率相对低下,后续如果有新增的再次更新吧,如果对你有帮助的话,点个❤吧!!!

你可能感兴趣的:(JAVA识别图片中的文字)