图像识别OCR(Tess4J)

🍓 简介:java系列技术分享(👉持续更新中...🔥)

🍓 初衷:一起学习、一起进步、坚持不懈

🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏

🍓 希望这篇文章对你有所帮助,欢迎点赞 👍 收藏 ⭐留言 📝

🍓 更多文章请点击

文章目录

  • 一、OCR图文识别简介
  • 二、Tess4J示例代码
    • [2.1 引入依赖](#2.1 引入依赖)
    • [2.2 导入中文字体库](#2.2 导入中文字体库)
    • [2.3 准备一张带文字的图片](#2.3 准备一张带文字的图片)
    • [2.4 代码编写](#2.4 代码编写)
    • [2.5 结论](#2.5 结论)

一、OCR图文识别简介

Tess4J官网:Tess4J官网:https://tess4j.sourceforge.net/usage.html

  • OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程
技术 说明明
百度OCR 收米
Tesseract-OCR Google维护的开源OCR引擎,支持Java,Python等语言调用
Tess4J 封装了Tesseract-OCR ,支持Java调用。(使用Tess4J需要不同的词库文件进行支撑)

二、Tess4J示例代码

2.1 引入依赖

xml 复制代码
		<!-- 图片识别文字-->
        <dependency>
            <groupId>net.sourceforge.tess4j</groupId>
            <artifactId>tess4j</artifactId>
            <version>5.9.0</version>
        </dependency>

2.2 导入中文字体库

将tessdata放到一个没有中文、特殊字符、空格的目录下

我下载的是简体中文
语言库下载:
https://github.com/tesseract-ocr/tessdata

2.3 准备一张带文字的图片

2.4 代码编写

我的语音库位置

测试代码

java 复制代码
public class OcrTest {

    public static void main(String[] args) throws TesseractException {
        try {
            Tesseract tesseract = new Tesseract();
            // 语言库位置(修改为跟自己语言库文件夹的路径)
            tesseract.setDatapath("D:\\develop\\workspace\\test-demo\\consumer-service\\src\\main\\resources\\tessdata");
            //chi_sim :简体中文, 根据需求选择语言库
            tesseract.setLanguage("chi_sim");
            // 识别图片的路径(修改为自己的图片路径)
            File file = new File("D:\\程序员.png");
            String result = tesseract.doOCR(file);
            // 替换回车和tal键 ,让结果在一行显示
            result = result.replaceAll("\\r|\\n", "").replaceAll(" ", "");
            System.out.println("识别的结果为:" + result);
        } catch (TesseractException e) {
            e.printStackTrace();
        }

    }
}

控制台打印结果

2.5 结论

经过多次换图测试,发现可以看到还是有很多不准确的地方.识别还是不太又好。

如果项目对精确度要求较高,还是研究付费的吧。

相关推荐
500842 小时前
存量 Flutter 项目鸿蒙化:模块化拆分与插件替换实战
java·人工智能·flutter·华为·ocr
TextIn智能文档云平台3 小时前
开源OCR大模型和闭源工具怎么选?
开源·ocr
wxl7812271 天前
OCR TXT文档语义分块技术实现
ocr·chunk·语义分块
青啊青斯1 天前
一、paddleocr的CPU/GPU环境安装
ocr·paddlepaddle·paddle
番石榴AI1 天前
纯 Java 实现的 OCR 推理系统:JiaJiaOCR,告别 exe/dll 依赖!
java·开发语言·ocr
秋91 天前
Tesseract OCR 安装使用 + 自定义字库训练
ocr
GitCode官方1 天前
Hunyuan OCR & Z-Image-Turbo 正式上线!两大模型在 NPU 加速平台完成部署,开启 AI 识图新时代!
人工智能·ocr
500841 天前
鸿蒙 Flutter AI 引擎实战:OCR 图文识别离线部署与准确率优化
java·人工智能·flutter·华为·性能优化·ocr
七夜zippoe2 天前
多模态模型实践 - 使用GPT-4V构建多模态应用
ocr·多模态·gpt-4v·核心算法·甲骨
AI人工智能+2 天前
文档抽取技术:融合深度学习与多模态分析,为RPA机器人注入了智能处理能力
ocr·rpa·文档抽取