通过Java实现OCR
- 一、TesseractOCR
- 二、引入pom
- 训练集下载地址
- 三、引入训练集
- 三、使用
一、TesseractOCR
本文使用的是TesseractOCR进行识别
二、引入pom
<dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>5.8.0</version>
</dependency>
训练集下载地址
三、引入训练集
训练集下载地址
下载训练集 放入到 resources下的tessdata文件夹下
三、使用
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import java.io.File;/*** @author Mr.NaCl* @since 2024/2/5*/
public class OCRServer {public static void main(String[] args) throws TesseractException {long start = System.currentTimeMillis();System.out.println("开始OCR文字识图,请稍后...");//加载要识别的图片File image = new File("14-OCR/src/main/resources/test.jpg");//设置配置文件夹位置、识别语言、识别模式Tesseract tesseract = new Tesseract();tesseract.setDatapath("14-OCR/src/main/resources/tessdata");//设置识别语言为中文简体,(如果要设置为英文可改为"eng")tesseract.setLanguage("chi_sim");//使用 OSD 进行自动页面分割以进行图像处理tesseract.setPageSegMode(1);//设置引擎模式是神经网络LSTM引擎tesseract.setOcrEngineMode(1);//开始识别整张图片中的文字String result = tesseract.doOCR(image);//如果只想识别图片中特定部分的文字,可以像下面这样选定长宽范围识别://String result = tesseract.doOCR(image, new Rectangle(300, 200));long time = System.currentTimeMillis() - start;System.out.println("识别结束,耗时:" + time + " 毫秒,识别结果如下:");System.out.println(result);}
}