热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringBoot+Tess4j实现牛逼的OCR识别工具

前言“等不到风中你的脸颊眼泪都美到很融洽等不到掩饰的雨落下我的眼泪被你察觉”听着循环的歌曲,写着久违的bug。好吧,还是一天。正好一个小伙伴说

前言


等不到风中你的脸颊

眼泪都美到很融洽

等不到掩饰的雨落下

我的眼泪被你察觉

听着循环的歌曲,写着久违的bug。好吧,还是一天。正好一个小伙伴说,要不要做个工具站玩一下。我就随意的找了个工具站,看了下,发现很多都有文字的OCR识别功能。因此,我想起来之前了解的非常流行的开源的OCR大神级别的项目,Tesseract OCR。


简单介绍

官网如下所示

https://tesseract-ocr.github.io/

简洁明了,挂在github上的网站。

详细的不再介绍,感兴趣的,可以进入同志网站:https://github.com/tesseract-ocr/tesseract ,观摩学习。


实操准备

要想在开发中使用,还是需要接入对应的API。

对于开发者来说,提供了众多的Wrapper,来实现Api调用。

对于Java一名小开发,来讲,还是使用tess4j,作为Api来使用。官网如下:

http://tess4j.sourceforge.net/

可以直接下载jar包,或者采用Maven依赖下载。


net.sourceforge.tess4jtess4j4.5.3


开发实现


First 创建工程


Second 添加依赖


4.0.0org.exampletest-textocr1.0-SNAPSHOTnet.sourceforge.tess4jtess4j4.5.3

Third 填写类文件

package ocr;import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.IOException;/**
* ocr测试.
*
* @author huc_逆天
* @since 2021/1/12 17:42
*/

public class TestTextOcr {public static void main(String[] args) throws IOException {// 创建实例ITesseract instance = new Tesseract();// 设置识别语言instance.setLanguage("chi_sim");// 设置识别引擎instance.setOcrEngineMode(1);// 读取文件BufferedImage image = ImageIO.read(TestTextOcr.class.getResourceAsStream("/2.jpg"));try {// 识别String result = instance.doOCR(image);System.out.println(result);} catch (TesseractException e) {System.err.println(e.getMessage());}}
}


Fifth 添加训练语言环境配置

TESSDATA_PREFIX=F:\tessdata ,变量名,固定,值为官网下载文件 https://github.com/tesseract-ocr/tessdata


Sixth 运行

结果如下:

可能识别模式,不是很合适,切换下

instance.setOcrEngineMode(0);

是不是舒服多了,哈哈。识别率瞬间上涨。

大家可以自行测试。


总结

好了,今天就到这了。技术在于折腾。多学习,让自己武装起来,变强大。


推荐阅读
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 如何使用 `org.apache.tomcat.websocket.server.WsServerContainer.findMapping()` 方法及其代码示例解析 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 深入解析HTTP网络请求API:从基础到进阶的全面指南
    本文全面解析了HTTP网络请求API,从基础到进阶,详细介绍了Android平台上的两种原生API——HttpUrlConnection和HttpClient。这两种API通过对底层Socket的封装,提供了高效、灵活的网络通信功能。文章不仅涵盖了基本的使用方法,还深入探讨了性能优化、错误处理和安全性等方面的高级主题,帮助开发者更好地理解和应用这些工具。 ... [详细]
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • Git命令基础应用指南
    本指南详细介绍了Git命令的基础应用,包括如何使用`git clone`从远程服务器克隆仓库(例如:`git clone [url/path/repository]`)以及如何克隆本地仓库(例如:`git clone [local/path/repository]`)。此外,还提供了常见的Git操作技巧,帮助开发者高效管理代码版本。 ... [详细]
  • Git应用技巧与实战经验分享
    在使用 Git 进行代码管理时,有时会遇到无法访问 `https://github.com` 仓库的问题,具体表现为 OpenSSL SSL_read 错误,连接被重置(errno 10054)。本文将深入探讨这一问题的成因,并分享多种解决方法,包括检查网络配置、更新 Git 版本以及调整 SSL 设置等,帮助开发者有效应对类似问题。此外,文章还将介绍一些实用的 Git 技巧和实战经验,提升代码管理和协作效率。 ... [详细]
  • 在更换电脑后,使用 Git Bash 运行 Python 时可能会遇到找不到 Python 解释器的问题。本文详细介绍了如何在 Windows 环境下通过 Bash Shell 调用不同版本的 Python,并成功运行 SRSPlayer HTTP 服务器。具体步骤包括配置环境变量、验证 Python 版本以及启动服务器的方法。 ... [详细]
author-avatar
洛特大人_382
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有