当前位置: 首页 > article >正文

C#使用Tesseract C++ API过程记录

Tesseract

Tesseract 是一个开源的光学字符识别(OCR)引擎,最初由 Hewlett-Packard(惠普)实验室开发,后来由 Google 收购并继续维护和开源贡献。Tesseract 可以识别多种语言的文字,广泛应用于将图片或扫描文档中的文本内容转换成可编辑的文本格式。随着深度学习技术的发展,Tesseract 也整合了基于深度神经网络的 OCR 模型,提升其识别准确率,特别是对于复杂排版和手写体的识别效果有所改善。

Tesseract 适合开发人员和研究人员使用,可以嵌入到各种应用中,比如文档数字化、图像处理软件、内容管理系统等。它支持命令行操作,也提供了丰富的 API 接口,支持 C++、Python、Java、Node.js 等多种编程语言,便于集成和调用。Tesseract 的核心功能包括文本检测、字符识别和后处理纠错,能够处理多种图像输入格式,输出包括纯文本、HOCR(HTML + OCR)格式、PDF 等多种格式。Tesseract 的高灵活性和强大的识别能力使其成为 OCR 领域中非常受欢迎的工具之一。

GitHub地址:https://github.com/tesseract-ocr/tesseract

image-20241227152937200

Tesseract提供了丰富的 API 接口,支持 C++、Python、Java、Node.js 等多种编程语言,没有C#的,实际上已经有大佬做了C#的封装了,并提供了一个示例项目,需要只是简单使用一下,用这个大佬的就很方便了。

感兴趣的可以瞧瞧:

项目GitHub地址:https://github.com/charlesw/tesseract

image-20241227153302569

示例GitHub地址:https://github.com/charlesw/tesseract-samples

image-20241227153437445

但这不是我们今天的主题,现在还处于学习阶段,能直接使用大佬的库确实很方便,但是如果自己能够知道大佬是怎么实现的,那不是也很酷吗?

实现的方式与大佬项目的方式是类似的,如下所示:

image-20241227153822517

需要依赖leptonica-1.82.0.dll与tesseract50.dll,然后通过DllImport导入其中的C++函数。

已经有现成的库了为什么不直接使用呢?

第一,项目中可能只需要用到Tesseract的几个C++ API而已,直接引用一大堆东西没有必要。第二,学习阶段,以自己学习掌握技能为主,自己先掌握了这项技能,然后偷懒了直接使用大佬的库也不迟。

Windows编译Tesseract

首先我们需要先在Windows上编译Tesseract,官方文档有一些介绍,文档地址:https://tesseract-ocr.github.io/tessdoc/Compiling.html。

查看文档之后,我使用这种方式:

image-20241227154722530

先来简单介绍一下vcpkg。

vcpkg


http://www.kler.cn/a/456116.html

相关文章:

  • 使用VS Code开发ThinkPHP项目
  • 源码分析之Openlayers中MultiPolygon类
  • 18_HTML5 Web IndexedDB 数据库 --[HTML5 API 学习之旅]
  • GitLab安装及使用
  • oracle怎样使用logmnr恢复误删除的数据
  • 【视觉惯性SLAM:八、ORB-SLAM2:特征匹配】
  • 【Unity3D】Particle粒子特效或3D物体显示在UGUI上的方案
  • 【电子通识】拆解支付宝碰一碰卡片
  • 现代网络负载均衡与代理导论
  • Android着色器SweepGradient渐变圆环,Kotlin
  • 【C++ 真题】P5733 【深基6.例1】自动修正
  • 渗透测试面试问题
  • 【字符串】——python反转字符串的7种方法
  • this:[object Object](查看this对象)
  • 永磁同步电机控制算法-转速环电流环ADRC控制器
  • 单片机实物成品-007 汽车防盗系统(代码+硬件+论文)
  • 企业安全建设——安全防线框架建设(一)
  • 数据序列化与反序列化的实际应用示例
  • 条款19 对共享资源使用std::shared_ptr
  • 【论文复现】基于改进海洋捕食者算法的光伏模型参数估计
  • 攻防世界web新手第五题supersqli
  • Bash Shell知识合集
  • Qt6 QML RegularExpressionValidator 输入中文的坑
  • VSCode 插件开发实战(十五):如何支持多语言
  • shell编程7
  • Ubuntu通过mDNS实现局域网local域名和octoprint域名访问