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调用

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

相关推荐
小bo波1 天前
Java Swing 图形用户界面实验 —— 从算术练习到游戏开发的完整实践
java·课程设计·gui·游戏开发·扫雷·swing
咖啡八杯1 天前
GoF设计模式——备忘录模式
java·后端·spring·设计模式
SamDeepThinking1 天前
裁掉那个差程序员后,给你看团队里高手的代码:这个习惯,希望你有
java·后端·程序员
朕瞧着你甚好1 天前
技术雷达 & Java 集成评估报告 — Apache Tika 3.3.1
java·ai编程
MacroZheng2 天前
短短几天,暴涨2.8万Star!又一款编程神器开源!
java·人工智能·后端
SamDeepThinking2 天前
函数式编程:用BiFunction消除多类型分支的代码重复
java·后端·面试
Flittly2 天前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了2 天前
Java 生成二维码解决方案
java·后端
人活一口气2 天前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP3 天前
Vibe Coding -- 完整项目案例实操
java