读取图片上的文字


提示:本文是基于tess4j

文章目录

  • 读取图片上的文字
  • 前言
  • 一、tess4j是什么?
  • 二、使用步骤
    • 1.POM引入库
    • 2.实例代码
  • 总结

前言

总是有一些与众不同的需求在等着研发人员去探索,本文介绍如何通过java读取图片上的文字。


一、tess4j是什么?

说tess4j之前,先说说Tesseract,因为tess4j是基于它的封装。

Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。Tesseract目前已作为开源顶目发布在GoogleProject,它与Leptonica图片处理库结合,可以读取各种格式的图像并将它们转化成超过60种语言的文本,我们还可以不断训 练自己的库,使图像转换文本的能力不断增强,如果团队深度需要,还可以以它为模板,开发出等合自身需求的OCR引擎。

Tess4J 是Java (JNA) 对 Tesseract OCR API 的封装。

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

Tess4J官网:http://tess4j.sourceforge.net/codesample.html

语言库:(需要科学上网下载)

https://github.com/tesseract-ocr/tessdata

https://codechina.csdn.net/mirrors/tesseract-ocr/tessdata


Tess4J是Tesseract在Java PC上的应用。在英文和数字识别中性能还是不错的,但是在中文识别中,无论速度还是识别率还是较弱,建议有条件的话,针对场景进行训练,会获得较好结果,本文仅对目前Tess4J的中文识别进行简单介绍 。

二、使用步骤

1.POM引入库

        <dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>4.6.0</version></dependency>

2.实例代码

    public static void main1(String[] args) throws IOException {Tesseract tesseract = new Tesseract();//设置语言库位置tesseract.setDatapath("/xxx/tessdata");//设置语言类型tesseract.setLanguage("chi_sim");//imgBufferedImage image = ImageIO.read(new File("a.png"));try  {String result = tesseract.doOCR(image);//PDF//String result = tesseract.doOCR(new File("xxx.pdf"));System.out.println(result);} catch (Exception e) {e.printStackTrace();}}

对代码进行说明:
支持操作图片:支持jpg、png等格式的图片。
支持操作PDF。
代码其实不多,因为已经封装了很多细节,我们只需要知道是借助Tesseract实体,通过给他设置语言库和操作语言来实现OCR光学识别。
<

我这里将语言库打包了,有需要的伙伴可以下载:

https://download.csdn.net/download/qq_38653981/87695195



其实Tesseract支持渲染格式类型有很多,上面一个枚举其实可以看到,所以不仅仅是图片,比如PDF也是支持的,原理基本都是OCR光学识别,当然,越清楚识别的越精准,如果有特殊要求,比如识别手写的内容,需要做语言训练,说白了就是要新增语言库的识别对应关系,不然程序没法匹配出来特殊的字,比如草书、特定签名、特殊标识等。

如果需要针对手写中文等特殊处理的字进行训练,可以参考这位朋友写的博客:
https://blog.csdn.net/weixin_29254673/article/details/113322249

总结

网上有很多操作的实现方式,我只是针对Tess4J进行了研究学习,更多的细节其实可以多去看看源码,里面有一些更深入的讲解,Tesseract因为涉及安装,所以操作有点麻烦,但是更加精准。一般我们项目开发,还是结合使用最佳,关键的东西就是语言库,这个东西只要完善了,Tess4J会很强大。
以上就是本次分享的内容,欢迎大家点赞学习

java读取图片、PDF中图片上的文字相关推荐

  1. 用 java 读取获取 二维码上的文字内容

    最近公司做一个物联网的项目,由于设备硬件编码复杂,因此业务人员提出能否使用手机扫一扫识别设备上二维码获取二维码上的编号,进而录入设备信息,在手机app上操作.因此写了如下的程序,希望对大家有帮助. 1 ...

  2. python 两种提取pdf中图片的包

    项目需求,提取pdf中图片,找半天的结果 1.fitz (我没找到元素定位的方法) pip install pymupdf import fitzdef extract_pic_from_pdf(pd ...

  3. 在线提取PDF中图片和文字

    无需下载软件,你就可以在线提取PDF中图片和文字,http://www.extractpdf.com/不仅可以获取本地PDF文档的图片和文字,还能获取远程PDF文档的图片和文字. 结果本人测试,该工具 ...

  4. java 操作 word 表格和样式,java读取word表格中的表格 java如何读取word中的excel表格数据...

    Java 利用poi 可以直接读取word中的表格保持样式生1.读取word 2003及word 2007需要的jar包 读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi ...

  5. Java 读取Word批注中的文本和图片

    本文将介绍读取Word批注的方法,包括读取Word批注中的文本及图片.下面将通过Java代码来演示如何读取批注. **工具使用:**Word类库(Free Spire.Doc for Java 免费版 ...

  6. java实现word,pdf,excel,图片添加水印

    gitee项目地址:https://gitee.com/betelnutandwine/meutilswatermark: java实现pdf,word,excel,ppt,图片加水印 jar地址:s ...

  7. java 打开ppt_如何使用Java读取PPT文本和图片

    前言 本篇文章将介绍通过Java程序来读取PPT幻灯片中的文本及图片的方法.读取图片时,可读取文档中的所有图片,也可以读取指定幻灯片当中的图片. 工具: Free Spire.Presentation ...

  8. ITEXT-定位PDF中图片的坐标与页码

    问题场景: 用itext自动生成PDF的过程中,想要在PDF中的某一页加入水印,这个水印图片的页码不固定,所以不能直接用'sealStamperUnder = stamp.getUnderConten ...

  9. PDF中图片表格可以转成Excel表格吗?

    对于PDF的修改和使用大部分人都不太熟悉,特别是PDF文档中的内容全部都是图片更无法直接编辑,如果需要使用到PDF中的表格时,就比较麻烦了,那么能不能将PDF中的图片转换成表格呢?这样直接修改表格不就 ...

最新文章

  1. CVPR2020 | PV-RCNN: 3D目标检测 Waymo挑战赛+KITTI榜 单模态第一算法
  2. linux进程及作业管理实验,Linux 进程及作业管理(示例代码)
  3. java点到曲线的距离公式,使用Haversine的距离公式获取经度和纬度的距离
  4. python自动化测试书籍推荐豆瓣_推荐几本自动化测试的书籍
  5. 网站“注册流程”如何“照顾用户”?
  6. Win7双开3389
  7. 来个“云”毕业典礼,这些装扮太硬核了!
  8. mamcache登录、_gomemcache首页、文档和下载 - memcache客户端库 - Go语言中文网 - Golang中文社区...
  9. 初识python多线程
  10. linux-type命令查看类型
  11. 联想r720内存频率_锐龙H真给劲儿 联想拯救者R7000 2020首测
  12. 线程阻塞问题-功能:环信登录失败后自动登录5次
  13. 软件天才都是训练出来的
  14. 推荐4个爬虫抓包神器
  15. windows nginx 搭建 图片服务器
  16. 【大数据实战】招聘网站职位分析
  17. springboot项目如何优雅停机
  18. 2017年10米分辨率全球土地覆盖产品(FROM-GLC10)Python下载爬虫
  19. 基于微信奶共享会议室预约小程序系统设计与实现 开题报告
  20. 腾讯云服务器地域与可用区

热门文章

  1. 最详细的MYSQL学习视频
  2. multi-view human pose estimation相关项目配置经验
  3. CentOS搭建Socks5 Proxy代理服务器
  4. Sharding-Sphere 3.X万众瞩目登场,如约而至!
  5. POI2001 Ants and the ladybug ***
  6. 区块链中“鸡肋”的RPC漏洞
  7. 华为面试自我介绍 --可修改版本自用
  8. 使用ssh连接Linux服务器反应慢,配置DNS的问题
  9. Java原型模式(prototype)
  10. Scala编程语言入门(1)