推荐一款开源免费的ocr文字识别项目,方便集成,准确率高。

推荐一款开源免费的ocr文字识别项目,方便集成,准确率高。

 

你好呀,我是小羊。

ocr是一种文字识别技术,可以把图片中的文字转换为文档识别出来,很多云平台都有这种服务,现在java 也能做到了,一起来看看吧。

推荐一款开源免费的ocr文字识别项目,方便集成,准确率高。

简介

OCR是Optical Character Recognition的缩写,意为光学字符识别。它是一种技术,能够将印刷或手写文字转换为可编辑的文本格式。OCR技术通常用于扫描文档、图书和其他印刷材料,以便将它们转换为电子文档或进行文字识别。OCR技术可以提高文档的可搜索性和可编辑性,同时也可以帮助人们快速识别和处理大量的文字信息。Tess4J允许开发人员使用Java调用Tesseract OCR引擎,从而实现图像文本的识别。它提供了简化的API,使得在Java应用程序中集成OCR功能变得更加容易。通过Tess4J,你可以将图像中的文本提取出来,使其成为可用于文本分析、搜索、索引等应用的文本数据。

例子

java 实现 ocr 主要是利用springboot 集成 tess4j 这个开源项目项目,Tess4J是一个基于Java的OCR库,它使用Tesseract OCR引擎来识别图像中的文本。Tesseract OCR是一个开源的OCR引擎,最初由惠普实验室开发,后来由Google维护。


在java 中使用的话,先要安装 tess4j 的环境和训练库

先下载exe 安装包 https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v5.3.0.20221214.exe

下载好后直接安装

再下载 训练文件 chi_sim.traineddata https://digi.bib.uni-mannheim.de/tesseract/tessdata_fast/chi_sim.traineddata

放到d盘  tess4j 目录

推荐一款开源免费的ocr文字识别项目,方便集成,准确率高。

pom 添加依赖

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

配置 yml 训练文件路径

# 训练数据文件夹的路径
tess4j:
  traineddata: D:tess4j

配置config,将训练数据注入到spring容器中

@Configuration
public class TesseractOcrConfiguration {

    @Value("${tess4j.datapath}")
    private String dataPath;

    @Bean
    public Tesseract tesseract() {

        Tesseract tesseract = new Tesseract();
        // 设置训练数据文件夹路径
        tesseract.setDatapath(dataPath);
        // 设置为中文简体
        tesseract.setLanguage("chi_sim");
        return tesseract;
    }
}

配置service,识别的主要逻辑,首先读取图片的输入流,图片文字识别主要使用  tesseract.doOCR() 方法进行识别

@Service
@AllArgsConstructor
public class OcrService {

    private final Tesseract tesseract;

    /**
     * 识别图片中的文字
     * @param imageFile 图片文件
     * @return 文字信息
     */
    public String recognizeText(MultipartFile imageFile) throws TesseractException, IOException {

        // 转换
        InputStream sbs = new ByteArrayInputStream(imageFile.getBytes());
        BufferedImage bufferedImage = ImageIO.read(sbs);

        // 对图片进行文字识别
        return tesseract.doOCR(bufferedImage);
    }
}

controller 方法调用service

@RequestMapping("/ocr")
@RestController
@AllArgsConstructor
public class OcrController {
    private final OcrService ocrService;

    @PostMapping(value = "/recognize", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public String recognizeImage(@RequestParam("file") MultipartFile file) throws TesseractException, IOException {

        // 调用OcrService中的方法进行文字识别
        return ocrService.recognizeText(file);
    }
}

随便截一张图当需要识别的图片

推荐一款开源免费的ocr文字识别项目,方便集成,准确率高。postman 调用接口

推荐一款开源免费的ocr文字识别项目,方便集成,准确率高。

下面是识别的文字,感觉效果还是不错的。正确路挺高。

推荐一款开源的大屏报表项目

原创 小羊的架构之路 小羊架构 2023-10-18 21:39 发表于广东

大家在平时应该都接触过各钟图表,像什么折线图,饼图,柱状图等等。有的小伙
伴还开发过,像我刚参加工作的时候,还开发过一个柱状图,放系统首页,像下面
这样

常见问题

如果报  Invalid memory access 错误的话,检查一下训练文件目录是否正确

推荐一款开源免费的ocr文字识别项目,方便集成,准确率高。

总结

tess4j 有以下优点:

开源免费:Tess4J是基于Tesseract OCR引擎开发的,Tesseract是一个开源的OCR引擎,因此Tess4J也是免费的,可以节省成本。
跨平台性:Tess4J是基于Java开发的,因此具有很好的跨平台性,可以在多种操作系统上运行。
支持多种语言:Tess4J支持多种语言的识别,包括英语、中文、日语等,适用范围广泛。
可扩展性:Tess4J具有良好的可扩展性,可以通过自定义训练模型来提高识别准确度。

如果项目中需要用到文字识别技术,可以使用这个开源项目来实现。

相关链接

github
https://github.com/nguyenq/tess4j

springboot整tess4j demo

https://gitee.com/yangzheng1/springboot-ocr

往期精彩推荐


 国内免费使用chatGPT的方法

数据库实时同步方案

推荐一款开源的大屏报表项目


欢迎点赞转发给我鼓励~

推荐一款开源免费的ocr文字识别项目,方便集成,准确率高。推荐一款开源免费的ocr文字识别项目,方便集成,准确率高。关注我获取更多IT分享 推荐一款开源免费的ocr文字识别项目,方便集成,准确率高。推荐一款开源免费的ocr文字识别项目,方便集成,准确率高。

原文始发于微信公众号(小羊架构):推荐一款开源免费的ocr文字识别项目,方便集成,准确率高。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/260067.html

(0)
Java朝阳的头像Java朝阳

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!