springboot实现OCR

1、引入依赖

XML 复制代码
<dependency>
	<groupId>net.sourceforge.tess4j</groupId>
	<artifactId>tess4j</artifactId>
	<version>4.5.4</version>
</dependency>

2、config

java 复制代码
@Configuration
public class TessOcrConfiguration {

   @Bean
   public Tesseract tesseract() {
      Tesseract tesseract = new Tesseract();
      // 设置训练数据文件夹路径
      tesseract.setDatapath("D:/tessdata");
      // 设置为中文简体
      tesseract.setLanguage("chi_sim");
      return tesseract;
   }
}

3、定义api

java 复制代码
@PostMapping(value = "/ocr", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String ocr(@RequestParam("file") MultipartFile file) throws TesseractException, IOException {
    return weChatService.ocr(file);
}

4、定义service

java 复制代码
@Resource
private Tesseract tesseract;

@Override
public String ocr(MultipartFile file) throws TesseractException, IOException {
    InputStream sbs = new ByteArrayInputStream(file.getBytes());
    BufferedImage bufferedImage = ImageIO.read(sbs);
    return tesseract.doOCR(bufferedImage);
}

5、将官方的简体中文训练数据(后缀为.traineddata的文件)放到配置的目录(D:/tessdata)下

下边是官方训练数据的下载地址,打开后可以找到简体中文的文件 chi_sim.traineddata,下载下来放到指定位置就可以了

tess4j官方训练数据下载https://digi.bib.uni-mannheim.de/tesseract/tessdata_fast/6、测试效果

测试图片

postman调用

可以发现【霜】被识别成了【需】,说明还是有一定的误差

相关推荐
جيون داد ناالام ميづ3 分钟前
Spring Boot 核心原理(一):基础认知篇
java·spring boot·后端
夏之小星星1 小时前
Springboot结合Vue实现分页功能
vue.js·spring boot·后端
韩立学长1 小时前
【开题答辩实录分享】以《自动售货机刷脸支付系统的设计与实现》为例进行答辩实录分享
vue.js·spring boot·后端
fantasy5_51 小时前
手撕vector:从零实现一个C++动态数组
java·开发语言·c++
十八旬1 小时前
RuoYi-Vue3项目定制修改全攻略
java·windows
任风雨1 小时前
3.1.1.Java基础知识
java·开发语言
脸大是真的好~1 小时前
黑马JAVA+AI 加强03-集合-Collection-List和Set集合-迭代器(Iterator)遍历-并发修改异常
java
cj6341181502 小时前
DBeaver连接本地MySQL、创建数据库表的基础操作
java·后端
仙人掌_lz2 小时前
Hybrid OCR-LLM框架用于在大量复杂密集企业级文档信息提取
人工智能·ocr·文档解析
书院门前细致的苹果2 小时前
深入理解 Java 多线程与线程池 —— 从原理到实战
java·开发语言