欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

Java ORC图片识别

发布时间:2023/12/18 java 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Java ORC图片识别 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Java ORC图片识别

背景

最近公司需要将一批登记表的图片,手动更名为编码 .jpg,而这个编码号可以在登记表中找到。于是,上网调研,发现具有现成简单的技术来做图片识别。

使用技术

java + tess4j + Tesseract-OCR

gitee 代码地址

实现步骤

步骤1:
首先安装 Tesseract-OCR 客户端。

客户端下载地址:https://digi.bib.uni-mannheim.de/tesseract/ <博主使用这个下载的客户端 使用版本为[v4.0.0-beta.4.20180912.exe]>

github项目地址:https://github.com/tesseract-ocr/ <博主使用这个查看的资料>

安装完成后的目录结构

其中重要的2个程序为 当前目录下的tesseract.exe

使用cmd可以直接使用 tesseract.exe 程序

tessdata/ 识别的语言库

步骤2:

新建一个java项目,引入依赖

<dependencies><dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>4.0.1</version></dependency></dependencies>

tess4j 尽量和 Tesseract-OCR 版本相匹配。 <博主遇到一次问题,版本不匹配,tess4J 输出日志也十分简短,后来提高版本解决>

步骤3:

代码实现:

File srcFile = new File("C:\\Users\\a9747\\Desktop\\jpg2\\Y0523-0631\\Y0523-0631\\Image_00056.jpg");BufferedImage bufferedImage = ImageIO.read(srcFile);ITesseract instance =new Tesseract();//设置安装Tesseract-OCR目录下的 tessdata文件夹instance.setDatapath("D:\\orc5\\Tesseract-OCR\\tessdata");//选择语言instance.setLanguage("chi_sim");try{System.out.println("开始识别");//Rectangle 为识别图片的范围,可以不传这个参数String result = instance.doOCR(bufferedImage,new Rectangle(471,359,430,85));//识别到的文本内容System.out.println(result);Pattern pattern =Pattern.compile("(01[0-9]{10}|320[0-9]{9})");Matcher matcher = pattern.matcher(result);if(matcher.find()){String number = matcher.group();System.out.println("识别到编号:"+number);}}catch (Exception e){e.printStackTrace();}}

后记

​ github项目地址中有各国语言的训练数据,可以下载到本地。

​ 如果发现识别出来的效果达不到自己需要的效果,可以选择:

* 切换使用语言库 * 更加精准的定义需要识别的区域 * 网上寻找更好的训练数据 * 自己训练语言数据

总结

以上是生活随笔为你收集整理的Java ORC图片识别的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。