zoukankan      html  css  js  c++  java
  • java代码实现图片内容转文字

    前言

    现在的手机已经可以实现拍照转文字了。作为一名程序员,得使用java代码实现这一功能,虽然可能没啥用!!!

    pom.xml

    添加依赖

    <dependency>
        <groupId>net.sourceforge.tess4j</groupId>
        <artifactId>tess4j</artifactId>
        <version>3.2.1</version>
    </dependency>

    这个依赖有点东西啊,32M。

    test.java

     1     public static void main(String[] args) {
     2         System.out.println("---------------------start--------------------------");
     3         Tesseract tesseract = new Tesseract();
     4         tesseract.setDatapath("D://DataScience//tessdata");
     5         // tesseract.setLanguage("chi_sim");
     6         try {
     7             System.out.println(tesseract.doOCR(new File("C:\Users\caofei\Desktop\2.png")));
     8         } catch (TesseractException e) {
     9             e.printStackTrace();
    10         }
    11         
    12         System.out.println("----------------------end---------------------------");
    13     }

    1.第三行,实例化一个Tesseract对象。

    2.第四行,我们要实现这一功能,得需要光学字符识别工具,就像硬件设备一样(但不是真的设备,就是模型设置数据),我们要提供路径。

     我下载了两个文件,eng前缀的代表英文的,chi_sim代表简体中文的。每一种语言对应一个。这些模型数据的下载地址

    是:https://github.com/tesseract-ocr/tesseract/wiki/Data-Files

    里面什么语言都有,也有这项技术的简介。

    3.第七号,我准备的图片2.png

     执行这个main方法,控制台就会输入我们想要的内容

     4.第五号我注掉了,这个工具的默认语言是英文。

     如果我们想转其他语言的图片,就需要像第五行这样指定。语言不匹配,会出现乱码。

  • 相关阅读:
    负数求余数 C 和 Matlab&Python 处理不一样
    [Matlab] 线性卷积&圆周卷积代码实现
    [Arduino] 驱动RC522 读取 UID例程
    [C++] Nested Radical Constant
    [Arduino] 学习总结小合集(更新ING)
    谐振电路的品质因素总结
    142. Linked List Cycle II
    664. Strange Printer
    188. Best Time to Buy and Sell Stock IV
    50. Pow(x, n)
  • 原文地址:https://www.cnblogs.com/fengyuduke/p/11976234.html
Copyright © 2011-2022 走看看