使用Test4J实现图像识别文字
开发工具
IDEA
开发环境
JDK1.8
MAVEN 3.6.3
引入依赖
<dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>3.2.1</version>
</dependency>
将testdata文件夹放在项目的根目录下
关注作者点击下方链接可免费下载tessdata
https://download.csdn.net/download/qq_43066945/15835906
准备工作做完了,可以开始了
我用的是springboot框架,所以有分层
首先创建工具类test4JUtils工具类
package com.dhcc.htp.modular.modle.utils;import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;import java.io.File;
import java.io.IOException;public class Test4JUtils {public static void test4JPicture(String path){//获取到我的项目的根目录,为了后面得到tessdata文件String localPath = "D://javaWorkSpace//java-study//htp";File file = new File(path);ITesseract instance = new Tesseract();File directory = new File(localPath);String courseFile = null;try {courseFile = directory.getCanonicalPath();}catch (IOException e){e.printStackTrace();}instance.setDatapath(courseFile + "//tessdata");//chi_sim是识别中文的文件,英文文件是eng,这个文件是可以自己用训练工具编译的,文件在tessdata文件夹中instance.setLanguage("eng");String result = null;try {long startTime = System.currentTimeMillis();result = instance.doOCR(file);long endTime = System.currentTimeMillis();System.out.println("Time is :" + (endTime - startTime) + "毫秒");}catch (TesseractException e){e.printStackTrace();}System.out.println("result:");System.out.println(result);}
}
创建service层
public DataResponse pictureOCR(Map<String,Object> params){String path = (String) params.get("path");Test4JUtils.test4JPicture(path);//不必拘泥于返回值类型,根据个人所好选择使用返回值类型,我这里使用DataResponse只是方便接口调试return new DataResponse().defaultOperationResponse(BizSuccessEnum.BUSINESS_OPERATE_SUCCESS.getMessage());
}
创建controller层
@ApiOperation("图片识别")
@PostMapping("/pictureOCR")
public DataResponse pictureOCR(@RequestBody Map<String,Object> params){DataResponse dataResponse = fileTestService.pictureOCR(params);return dataResponse;
}
使用swagger调试接口
图片原型:
运行结果:
我们可以看到识别的功能已经实现但是识别的正确率却不尽人意,这是因为字体库的原因,也就是tessdata文件夹里那些东西,这些是可以训练或者网上找到资源好些的tessdata文件,大家也可以学习一下自己训练,就是麻烦一些,后期如果我自己需要训练这些文字的话,会在写一篇训练博客,有问题可以留言哦
使用Test4J实现图像识别文字相关推荐
- 微信小程序识别图片并提取文字_微信小程序(图像识别,文字识别)
1. ''你知道为什么海水是蓝色的吗?''''因为海里有鱼''''有鱼跟海水是蓝的有毛关系''''因为鱼会吐泡泡..''''??''''吐泡泡就是..卟噜(blue)卟噜(blue)卟噜(blue)卟 ...
- [Python图像识别] 四十八.Pytorch构建Faster-RCNN模型实现小麦目标检测
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- (python)实现一个简单的图片文字识别脚本
文章目录 截图 文字识别## 访问剪切板 总结 快毕业了,除了准备答辩之外,就是看看书,各种瞎晃~ 那么,这两天在看书的时候遇到这么个问题: 首先,部分电子版的书籍是以扫描图片的形式展现的,在阅读过程 ...
- python实现简单的图片文字识别脚本
我们都知道,部分电子版的书籍是以扫描图片的形式展现的,在阅读过程中无法选取文字.对于平时有记录习惯的人来说,无法复制黏贴真的很不爽! 为了解决这个问题,需要这样一个脚本,他有下面这些功能: 1.能够实 ...
- 化妆品致敏成分识别——python图像处理之文字识别+匹配
化妆品致敏成分识别--python图像处理之文字识别+匹配 本文主要探究一个小程序,给定一个化妆品的成分图片,判断其中是否含有致敏成分,帮助敏感肌选择化妆品~(程序质量不够理想,模型仍在调整完善,致敏 ...
- 华为云发布桌面IDE-CodeArts
摘要:华为伙伴暨开发者大会2022,发布华为云桌面IDE-CodeArts. 本文分享自华为云社区<华为云发布桌面IDE-CodeArts,让连接更简单.编码更智能>,作者: Huawei ...
- 我的 OneNote 入门心得
Microsoft OneNote 是老牌笔记类软件,在如今百花齐放的笔记类市场仍然有众多死忠粉的拥护,比如我.也试过其它笔记类软件,近年推出的 Notion 就不错,但仍然无法取代 OneNote ...
- python编程玩具有哪些_python 全栈开发,Day133(玩具与玩具之间的对话,基于jieba gensim pypinyin实现的自然语言处理,打包apk)...
先下载github代码,下面的操作,都是基于这个版本来的! 注意:由于涉及到版权问题,此附件没有图片和音乐.请参考链接,手动采集一下! 请参考链接: 一.玩具与玩具之间的对话 app消息提醒 之前实现 ...
- 用Python实现连续图文识别
1.工具: 1.1 剪切板.我下载并安装使用的是剪切板查看器(clipbrd.exe),成功后显示"剪贴薄查看器.exe" 1.2 截图工具并设置热键.保存图片键和退出键可任意设 ...
最新文章
- 圆圈在动吗?这个骗过人眼的动图火了,LeCun解释原理:和CNN对抗攻击类似
- sqlite 二进制字段 (zz)
- Asp.net Core全局异常监控和记录日志
- Ubuntu18.04安装opencv出现的一系列问题解决方法(持续更新~)
- frm ibd文件导入mysql_Mariadb,Mysql如何根据.frm和.ibd文件来恢复数据和表结构
- nginx 和 php超时设置
- 卸载所有supervisor残留_拯救C盘!这个良心的卸载工具还是免费的?!
- 漏斗模型被营销大师们玩烂了
- Netty 如何做到单机百万并发?
- 【信息检索导论】第一章 布尔检索
- 柠檬班python自动化百度云_柠檬班python
- 数显电接点压力表与指针电接点压力表的区别
- Android webview 常见的优化方案
- oracle的gc告警,防患未然:Oracle gc等待事件的发现、处理与预防
- 一款强大的红队信息收集和资产收集工具(Kscan)
- RHCSA——第四天
- mysql 分桶_使用hive脚本一键动态分区、分区又分桶以及脚本步骤详细详解(亲测成功)...
- 《金蝶ERP-K/3完全使用详解》——6.3 系 统 设 置
- 无线电通信天线增益的计算
- seo是什么|怎么做好seo|seo视频教程