Java ORC图片识别
生活随笔
收集整理的这篇文章主要介绍了
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图片识别的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 谈谈写博客的意义和感受
- 下一篇: Java学习笔记: HashMap 和