# 图片敏感文字检查

# 需求

识别如下图片中的文字

image-20240303162417378

# 图片文字识别

认识 OCR 什么是 OCR?

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

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

# 使用步骤

# 导入依赖

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

在指定的位置创建一个名为:tessdata 的文件夹将 中文文字库文件 放入其中

image-20240303162449536

文件内容如下:

https://file.notion.so/f/f/73b84cb9-15ed-45fa-a30f-5ee9486a5bec/459678e4-a204-4c08-add2-a43897c77886/chi_sim.traineddata?id=3912f598-1fea-4ef8-875c-53ecad098164&table=block&spaceId=73b84cb9-15ed-45fa-a30f-5ee9486a5bec&expirationTimestamp=1709546400000&signature=zX05AjmzQu-0SZYXxvxjlndyQahM8uGNTCHTOZp1qfY&download=true&downloadName=chi_sim.traineddata

# 测试 - 使用

编写测试类进行测试:

package com.heima.tess4j;
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import java.io.File;
public class Application {
    public static void main(String[] args) {
        try {
            // 获取本地图片
            File file = new File("D:\\26.png");
            // 创建 Tesseract 对象
            ITesseract tesseract = new Tesseract();
            // 设置字体库路径
            tesseract.setDatapath("E:\\tessdata");
            // 中文识别
            tesseract.setLanguage("chi_sim");
            // 执行 ocr 识别
            String result = tesseract.doOCR(file);
            // 替换回车和 tal 键  使结果为一行
            result = result.replaceAll("\\r|\\n","-").replaceAll(" ","");
            System.out.println("识别的结果为:"+result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

输出结果为如下:

image-20240303164114793