JAVA识别图片中的文字
最近在需求上有一个识别图片中的文字功能,查询了不少资料,发现可以使用tess4j识别图像文字:话不多说现在开始:
首先创建Spring Boot项目:导入以下依赖
<groupId>net.sourceforge.tess4j
<artifactId>tess4j
<version>3.2.1
</dependency>
然后去下面的网址下载一个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的中文识别效率相对低下,后续如果有新增的再次更新吧,如果对你有帮助的话,点个❤吧!!!