java读取图片、PDF中图片上的文字

这篇具有很好参考价值的文章主要介绍了java读取图片、PDF中图片上的文字。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

读取图片上的文字


提示:本文是基于tess4j


前言

总是有一些与众不同的需求在等着研发人员去探索,本文介绍如何通过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");
        //img
        BufferedImage 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


java读取图片、PDF中图片上的文字
java读取图片、PDF中图片上的文字

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

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

总结

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

到了这里,关于java读取图片、PDF中图片上的文字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JAVA读取(DOC、DOCX、PDF、PPT、PPTX)文件文本内容及图片

    温馨提示:有很多方法均可以解析这些常见的文件,以下内容使用的是apache-poi + apache-pdfbox实现的。         关于文档解析,在网上搜索了很久,无奈内容太过繁杂,找不到合适的代码,一大半都是只支持文本。没办法,只能自己在网上一点一点CV了,最终提取了这些代码

    2024年02月03日
    浏览(48)
  • ps去除图片上的文字

         

    2024年01月23日
    浏览(41)
  • 图片怎么翻译?三分钟教会你如何翻译图片上的文字

    嘿,小伙伴们!你们有没有碰到过这种情况:有时候我们会看到一张有趣的图片,上面可能写着奇怪的字母、生僻的文字或者是令人费解的符号。这时应该怎么办呢?其实我们可以借助图片翻译成文字的软件把它翻译过来就行了。但是,现在市面上的这种软件好坏参差不齐,

    2024年02月15日
    浏览(40)
  • python提取图片型pdf中的文字(提取pdf扫描件文字)

    前言 文字型pdf提取,python的库一大堆,但是图片型pdf和pdf扫描件提取,还是有些难度的,我们需要用到OCR(光学字符识别)功能。 一、准备 1、安装OCR(光学字符识别)支持库 首先要安装 pytesseract 和 Tesserac OCR ,Tesseract OCR是一种广泛使用的OCR工具,它可以用于从图像中提取

    2024年03月23日
    浏览(69)
  • C# 图片转PDF,PDF增加水印文字

    好久没写博客了,今天给大家分享一个图片转PDF的相关操作,也算是一次总结吧。 首先需要准备动态库itextsharp.dll,这个dll去网上下载,都可以下载到,C#对PDF的操作都是基于这个类库来实现的。话不多说,直接上代码。

    2024年02月09日
    浏览(47)
  • 零代码编程:用ChatGPT批量识别图片PDF中的文字

    有些PDF页面是图片格式,要怎么批量把图片中的文字识别出来?借助ChatGPT可以轻松完成这个任务。 首先要安装一些相关的软件和Python库。 安装tesseract-ocr(OCR)软件,最新版的是tesseract-ocr-w64-setup-v5.3.0.20221214.exe ,下载地址是https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-se

    2024年02月15日
    浏览(55)
  • Word导出创建Adobe PDF其中emf图片公式马赛克化及文字缺失

    Word 2021 Visio 2019 Adobe Acrobat Pro 2020 公式马赛克化,是指在Word中使用MathType编辑的公式,然后在Visio中使用 图片(增强型图元文件) 形式得到的粘贴对象,效果如下 文字缺失,是指Word 导出 → 创建Adobe PDF → 创建Adobe PDF 获得的PDF文件中,原来的emf矢量图部分文字缺失,效果如下

    2024年02月11日
    浏览(57)
  • 为什么使用fitz读取pdf转为图片模糊

    出现这样的原因有可能是因为,在进行页面读取的时候未指定读取的dpi是多少,使得默认读取去96dpi 所以在进行读取时使用 遇到苦难找文档哦 牢记 : color{red}{牢记:} 牢记 : help()和查看官方文档呀 相关的其他参数还有: matrix:指定应用于页面的转换矩阵(fitz.Matrix 对象)。默

    2024年02月12日
    浏览(71)
  • 【批量区域识别内容重命名】批量识别图片区域文字并重命名,批量图片部分识别内容重命文件,PDF区域识别提取重命名

    我们在工作和生活中经常遇到这样的需求:比如将以下的图片区域识别进行重命名,批量识别后改成以时间和工作内容重命名,便于日后检索,快速查询 首先我们拍摄照片用到的是水印相机,这里的文字呢我们需要加个背景,这样在文字识别就很容易的被识别,准确率也非常

    2024年04月25日
    浏览(49)
  • Java pdf添加文字水印

    最近在开发一个项目,其中就有导出的功能,而甲方提了一个需求,要对导出的pdf加文字水印,所以我就加班了整整10分钟肝出了这个功能,既然做出来了就和大家分享一下吧,拿走不谢!!! 总共就三步,非常简单 1.导入maven依赖 2.PDF增加水印工具类 3.运行工具类下面的m

    2024年02月12日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包