读取图片上的文字
提示:本文是基于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
其实Tesseract支持渲染格式类型有很多,上面一个枚举其实可以看到,所以不仅仅是图片,比如PDF也是支持的,原理基本都是OCR光学识别,当然,越清楚识别的越精准,如果有特殊要求,比如识别手写的内容,需要做语言训练,说白了就是要新增语言库的识别对应关系,不然程序没法匹配出来特殊的字,比如草书、特定签名、特殊标识等。
如果需要针对手写中文等特殊处理的字进行训练,可以参考这位朋友写的博客:
https://blog.csdn.net/weixin_29254673/article/details/113322249文章来源:https://www.toymoban.com/news/detail-494464.html
总结
网上有很多操作的实现方式,我只是针对Tess4J进行了研究学习,更多的细节其实可以多去看看源码,里面有一些更深入的讲解,Tesseract因为涉及安装,所以操作有点麻烦,但是更加精准。一般我们项目开发,还是结合使用最佳,关键的东西就是语言库,这个东西只要完善了,Tess4J会很强大。
以上就是本次分享的内容,欢迎大家点赞学习文章来源地址https://www.toymoban.com/news/detail-494464.html
到了这里,关于java读取图片、PDF中图片上的文字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!