开发工具

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. 微信小程序识别图片并提取文字_微信小程序(图像识别,文字识别)

    1. ''你知道为什么海水是蓝色的吗?''''因为海里有鱼''''有鱼跟海水是蓝的有毛关系''''因为鱼会吐泡泡..''''??''''吐泡泡就是..卟噜(blue)卟噜(blue)卟噜(blue)卟 ...

  2. [Python图像识别] 四十八.Pytorch构建Faster-RCNN模型实现小麦目标检测

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  3. (python)实现一个简单的图片文字识别脚本

    文章目录 截图 文字识别## 访问剪切板 总结 快毕业了,除了准备答辩之外,就是看看书,各种瞎晃~ 那么,这两天在看书的时候遇到这么个问题: 首先,部分电子版的书籍是以扫描图片的形式展现的,在阅读过程 ...

  4. python实现简单的图片文字识别脚本

    我们都知道,部分电子版的书籍是以扫描图片的形式展现的,在阅读过程中无法选取文字.对于平时有记录习惯的人来说,无法复制黏贴真的很不爽! 为了解决这个问题,需要这样一个脚本,他有下面这些功能: 1.能够实 ...

  5. 化妆品致敏成分识别——python图像处理之文字识别+匹配

    化妆品致敏成分识别--python图像处理之文字识别+匹配 本文主要探究一个小程序,给定一个化妆品的成分图片,判断其中是否含有致敏成分,帮助敏感肌选择化妆品~(程序质量不够理想,模型仍在调整完善,致敏 ...

  6. 华为云发布桌面IDE-CodeArts

    摘要:华为伙伴暨开发者大会2022,发布华为云桌面IDE-CodeArts. 本文分享自华为云社区<华为云发布桌面IDE-CodeArts,让连接更简单.编码更智能>,作者: Huawei ...

  7. 我的 OneNote 入门心得

    Microsoft OneNote 是老牌笔记类软件,在如今百花齐放的笔记类市场仍然有众多死忠粉的拥护,比如我.也试过其它笔记类软件,近年推出的 Notion 就不错,但仍然无法取代 OneNote ...

  8. python编程玩具有哪些_python 全栈开发,Day133(玩具与玩具之间的对话,基于jieba gensim pypinyin实现的自然语言处理,打包apk)...

    先下载github代码,下面的操作,都是基于这个版本来的! 注意:由于涉及到版权问题,此附件没有图片和音乐.请参考链接,手动采集一下! 请参考链接: 一.玩具与玩具之间的对话 app消息提醒 之前实现 ...

  9. 用Python实现连续图文识别

    1.工具: 1.1 剪切板.我下载并安装使用的是剪切板查看器(clipbrd.exe),成功后显示"剪贴薄查看器.exe" 1.2  截图工具并设置热键.保存图片键和退出键可任意设 ...

最新文章

  1. 圆圈在动吗?这个骗过人眼的动图火了,LeCun解释原理:和CNN对抗攻击类似
  2. sqlite 二进制字段 (zz)
  3. Asp.net Core全局异常监控和记录日志
  4. Ubuntu18.04安装opencv出现的一系列问题解决方法(持续更新~)
  5. frm ibd文件导入mysql_Mariadb,Mysql如何根据.frm和.ibd文件来恢复数据和表结构
  6. nginx 和 php超时设置
  7. 卸载所有supervisor残留_拯救C盘!这个良心的卸载工具还是免费的?!
  8. 漏斗模型被营销大师们玩烂了
  9. Netty 如何做到单机百万并发?
  10. 【信息检索导论】第一章 布尔检索
  11. 柠檬班python自动化百度云_柠檬班python
  12. 数显电接点压力表与指针电接点压力表的区别
  13. Android webview 常见的优化方案
  14. oracle的gc告警,防患未然:Oracle gc等待事件的发现、处理与预防
  15. 一款强大的红队信息收集和资产收集工具(Kscan)
  16. RHCSA——第四天
  17. mysql 分桶_使用hive脚本一键动态分区、分区又分桶以及脚本步骤详细详解(亲测成功)...
  18. 《金蝶ERP-K/3完全使用详解》——6.3 系 统 设 置
  19. 无线电通信天线增益的计算
  20. seo是什么|怎么做好seo|seo视频教程

热门文章

  1. 哈夫曼树(一)基本概念与C语言实现
  2. KT6368A的HID蓝牙双模版本_蓝牙键盘鼠标扫码枪方案介绍
  3. 微信小程序反编译流程
  4. mysql删除账号_mysql 创建和删除用户
  5. SAP abap 添加双击事件
  6. Linux中压缩和解压(gzip压缩/gunzip解压)(zip压缩/unzip解压)(tar打包解压)
  7. bzoj1673:天平
  8. webgl ajax 图片跨域,ajax跨域请求图片
  9. 3000字长文,Pandas美化你的Excel表格!
  10. python机器学习应用案例---PCA