1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Java使用Tesseract-OCR文字识别(Java调用tess4j提取图片中文 英文 数字信息)

Java使用Tesseract-OCR文字识别(Java调用tess4j提取图片中文 英文 数字信息)

时间:2022-02-07 10:17:54

相关推荐

Java使用Tesseract-OCR文字识别(Java调用tess4j提取图片中文 英文 数字信息)

由于需要在应用中将原本的身份认证手动提交身份信息改为用户上传身份证照自动提取信息,提升用户体验,第一时间想到阿里云等平台的收费服务及开源技术Tesseract-OCR(Tesseract-OCR提供了全套训练工具,可降低开发成本,需要下载客户端使用),同时提供了tess4j(tess4j是Java对Tesseract-OCR的封装,使Java应用程序可以调用tess4j API使用Tesseract-OCR),这里先体验一下开源技术tess4j。

一、tess4j实现提取图片信息

1、创建一个maven普通Java项目,标记部分为后面添加。

2、添加tess4j相关依赖。如果非maven工程需下载源码包,将源码包下的lib文件夹拷贝至项目下,下一步的图片中显示了源码包目录结构

<!--tess4j相关依赖 --><dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>3.2.1</version></dependency>

3、下载源码包

tess4j源码包:/projects/tess4j/

中文库地址:/tesseract-ocr/tessdata/blob/master/chi_sim.traineddata

其他语言包地址:/tesseract-ocr/tessdata

3.1、下载tess4j源码包并解压

3.2、将tess4j里的文件夹tessdata拷贝至项目根目录,与src同级。

3.3、tessdata默认只有英文库eng.traineddata,识别中文需要下载中文包并将中文包拷贝至tessdata里eng.traineddata同级目录下。

4、在项目中创建图片资源目录,存放本地图片供识别使用,这里在根目录创建并存入几张中、英文、数字图片。

5、编写测试类。

import java.io.File;import net.sourceforge.tess4j.ITesseract;import net.sourceforge.tess4j.Tesseract;import net.sourceforge.tess4j.TesseractException;/*** tess4j测试类*/public class Tess4jDemo {public static void main(String []args) throws TesseractException{//创建ITesseract接口的实现实例对象ITesseract iTesseract = new Tesseract();//设置tessdata训练库语言包地址,项目根目录下为默认地址可不设置//iTesseract.setDatapath("E:\IDEA\IntelliJ IDEA .1.3\IdeaProjects\Tess4jDemo\tessdata");//默认识别英文//如果需要识别英文之外的语种,需要指定识别语种,并且需要将对应的语言包放进项目中//iTesseract.setLanguage("chi_sim");// 指定本地图片File img = new File("E:\\IDEA\\IntelliJ IDEA .1.3\\IdeaProjects\\Tess4jDemo\\Tess4jImages\\num.jpg");//开始识别时间long startTime = System.currentTimeMillis();//识别结果String ocrResult = iTesseract.doOCR(img);// 输出识别结果System.out.println("耗时:" + (System.currentTimeMillis() - startTime) + "ms");System.out.println("识别结果: \n" + ocrResult );}}

6、运行结果

6.1、数字图片识别

6.1.1

6.1.2

6.2、英文图片识别。

6.3、中文图片识别,将代码中设置中文库的代码注释取消

6.3.1

6.3.2

结果很明显:在简单环境下,印刷体,数字识别最好,中、英文识别差不多效果一般,复杂环境下,识别效果都很差,必须使用官方提供的训练工具对各种场景提升识别能力

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