当前位置:   article > 正文

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>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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();
            }
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

后记

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

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

* 切换使用语言库
* 更加精准的定义需要识别的区域
* 网上寻找更好的训练数据
* 自己训练语言数据
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/273111
推荐阅读
相关标签
  

闽ICP备14008679号