Java实现CR-图片文字识别功能(超简单)

一.什么是OCR

OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程

方案 说明
百度OCR 收费
Tesseract-OCR Google维护的开源OCR引擎,支持Java,Python等语言调用
Tess4J 封装了Tesseract-OCR ,支持Java调用

二.Tesseract-OCR 的特点

  • Tesseract支持UTF-8编码格式,并且可以“开箱即用”地识别100多种语言

  • Tesseract支持多种输出格式:纯文本,hOCR(HTML),PDF等

  • 官方建议,为了获得更好的OCR结果,最好提供给高质量的图像

  • Tesseract进行识别其他语言的训练,具体的训练方式请参考官方提供的文档:Tesseract User Manual | tessdocTesseract documentationicon-default.png?t=N7T8https://tesseract-ocr.github.io/tessdoc/

三.使用案例

1.导入相关的依赖

XML

1
2
3
4
5

    net.sourceforge.tess4j
    tess4j
    4.1.1

2.导入中文字体库

地址: tessdata.zip - 蓝奏云文件大小:1.6 M|icon-default.png?t=N7T8https://wwvc.lanzouj.com/iuPhc1h7j46f

3.编写测试类进行测试

待识别的图片

Java实现CR-图片文字识别功能(超简单)_第1张图片

测试程序

JAVA

package com.atguigu.gulimall.search.utils;

import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;

import java.io.File;

/**
 * @author Jason Gong
 * @version 1.0
 * @Date 2023/12/8
 * @Description
 */
public class Main {

    /**
     * 识别图片中的文字
     *
     * @param args
     */
    public static void main(String[] args) throws TesseractException {
        //创建实例
        Tesseract tesseract = new Tesseract();
        //设置字体库的路径
        tesseract.setDatapath("C:\\Users\\c2405\\Desktop\\tessdata");
        //设置语言
        //字体库为chi_sim.traineddata,语言取.前面的内容,即文件名
        //简体中文
        tesseract.setLanguage("chi_sim");
        //识别图片
        String ocr = tesseract.doOCR(new File("C:\\Users\\c2405\\Desktop\\apic21002.jpg"));
        //打印识别的结果
        //打印的时候可以去除回车和tab空格
        //System.out.println(ocr.replaceAll("\\n|\\r","-"));
        System.out.println(ocr);
    }
}

识别的结果

Java实现CR-图片文字识别功能(超简单)_第2张图片

你可能感兴趣的:(工具配置,java,开发语言)