java实现ocr功能(Tesseract OCR)

1、pom文件中引入依赖

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

2、下载语言库文件(不要放到resources下,可以放到项目所在目录下,在博主的主页资源菜单下可下载,也可自行在网上找资源下载)

参考目录结构(也可以放其他位置,只要代码能找到就行):

3、代码:

java 复制代码
@PostMapping("/ocr2")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "识别图像2", notes = "上传图像")
public R<String> ocr2(@RequestBody MultipartFile file) throws Exception {
    Tesseract instance = new Tesseract();
    // 设置Tesseract的语言库路径
    ClassPathResource classPathResource = new ClassPathResource("/tessdata");
    String tessDataPath = classPathResource.getPath();
    instance.setDatapath(tessDataPath);
    instance.setLanguage("chi_sim");
    String ocrResult = "";
    File tfile = File.createTempFile("tempfile", file.getOriginalFilename());
    file.transferTo(tfile);
    ocrResult = instance.doOCR(tfile);
    return R.data(ocrResult);
}

4、测试接口(只能上传jpg文件)

测试时使用的图片

相关推荐
wanghowie1 分钟前
01.03 Java基础篇|面向对象核心与设计实践
java·开发语言
vortex56 分钟前
ORM是什么?如何理解ORM?ORM的优缺点?
java·数据库·sql·mysql·oracle·orm
Algebraaaaa9 分钟前
为什么线程阻塞要用.join而不是.wait
java·c++·python
是苏浙12 分钟前
零基础入门Java之设计图书管理系统
java·开发语言
墨雪不会编程19 分钟前
C++内存管理深度剖析
java·开发语言·c++
BBB努力学习程序设计21 分钟前
Java Scanner完全指南:让程序与用户对话
java
KingRumn24 分钟前
Linux进程间通信之消息队列(POSIX)
linux·服务器
BBB努力学习程序设计24 分钟前
Java面向对象编程:封装、继承与多态深度解析
java
Lucky_Turtle27 分钟前
【Springboot】解决PageHelper在实体转Vo下出现total数据问题
java·spring boot·后端
Mr.朱鹏28 分钟前
大模型入门学习路径(Java开发者版)下
java·python·学习·微服务·langchain·大模型·llm