1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Maven项目中使用Tess4J(OCR识别--图片文字识别)

Maven项目中使用Tess4J(OCR识别--图片文字识别)

时间:2024-01-12 15:15:30

相关推荐

Maven项目中使用Tess4J(OCR识别--图片文字识别)

Maven项目中使用Tess4j

Tess4J介绍Tess4J的使用Maven依赖导入添加Tessdata语言库新建环境变量编写demo代码官方提供实例代码[示例代码链接](/codesample.html)

Tess4J介绍

Tess4J官网

Tesseract-OCR支持中文识别,并且开源和提供全套的训练工具,是快速低成本开发的首选。而Tess4j则是Tesseract在Java PC上的应用。在英文和数字识别中性能还是不错的,但是在中文识别中,无论速度还是识别率还是较弱,建议有条件的话,针对场景进行训练,会获得较好结果。

Tess4J的使用

Maven依赖导入

Tess4J Tesseract For Java >>4.5.4

<!-- /artifact/net.sourceforge.tess4j/tess4j --><dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>4.5.4</version></dependency>

添加Tessdata语言库

github下:语言库下载地址

百度云盘下 :

链接:/s/1BTMTbCb_y2fAnrFGf740zg 提取码:crz5

在任意地方创建一个文件夹tessdata,将下载的chi_sim.traineddata(中文语言库)和 eng.traineddata(英文语言库)语言包存放在该目录下,也可以直接存放到自己项目的resources/tessdata目录下。

我是放在了项目根目录下,将所有的语言库都放了进去。

新建环境变量

也可以新建一个环境变量TESSDATA_PREFIX,变量值为语言库解压的文件夹路径。

可以在项目中通过System.getenv(key)获取到环境变量的值。

编写demo代码

package com.chen;import net.sourceforge.tess4j.ITesseract;import net.sourceforge.tess4j.Tesseract;import net.sourceforge.tess4j.TesseractException;import java.io.File;public class TesseractExample {public static void main(String[] args) {File imageFile = new File("C:\\Users\\Administrator\\Desktop\\111.jpg");ITesseract instance = new Tesseract(); // JNA Interface Mapping// 语言库的路径// instance.setDatapath("D:\\TessData\\tessdata\\tessdata-master");// 通过环境变量获取instance.setDatapath(System.getenv("TESSDATA_PREFIX"));// 设置语言为中文, eng为英文instance.setLanguage("chi_sim");try {long startTime = System.currentTimeMillis();// 执行OCR操作String result = instance.doOCR(imageFile);System.out.println(result);long endTime = System.currentTimeMillis();System.out.println("Time is:" + (endTime - startTime) + " 毫秒");} catch (TesseractException e) {System.err.println(e.getMessage());}}}

其中111图片为:

输出结果为:

官方提供实例代码示例代码链接

package net.sourceforge.tess4j.example;import java.io.File;import net.sourceforge.tess4j.*;public class TesseractExample {public static void main(String[] args) {File imageFile = new File("eurotext.tif");ITesseract instance = new Tesseract(); // JNA Interface Mapping// ITesseract instance = new Tesseract1(); // JNA Direct Mappinginstance.setDatapath("tessdata"); // path to tessdata directorytry {String result = instance.doOCR(imageFile);System.out.println(result);} catch (TesseractException e) {System.err.println(e.getMessage());}}}

如有错误,欢迎指出。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。