Tesseract -OCR 引擎 在C++内使用

1.环境准备

1.Conan version 2.3.2 ----- c++包/依赖管理工具

2.cmake version 3.29.3 -------- c++项目构建工具

3.msvc-2022 -------------- windows平台c++工具集

4.vscode 1.87.2

vscode插件:C/C++、CMake、CMake tools

Conan2 安装:https://conan.io/downloads

CMake安装:https://cmake.org/download/

MSVC安装:https://blog.csdn.net/b1049112625/article/details/134524652

2.CMake 创建项目

ctrl+shift+p 打开cmake创建项目命令:

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/2在这里插入图片描述

创建完成后会初始化目录结构,生成CMakeLists.txt 配置文件

3.Conan安装依赖包

创建conanfile.txt文件,配置依赖项和构建工具,内容如下

[requires]
 tesseract/4.1.1

[generators]
 CMakeDeps
 CMakeToolchain

 [options]
 

生成conan 默认profile文件

conan profile detect

修改一下内容:

[settings]
arch=x86_64
build_type=Release
compiler=msvc
compiler.cppstd=14
compiler.runtime=dynamic
compiler.version=193
os=Windows

在项目根目录执行以下命令开始安装依赖, 并输出到build文件夹,–build=missing表示缺失包通过源码构建。

conan install . --output-folder=build --build=missing

出现如下输出表示安装完成,以下输出还有用,不要清除,下面讲
在这里插入图片描述

在build 目录下会生成conan_toolchain.cmake文件,用于配置cmake项目。

修改CMakeLists.txt配置文件:
在这里插入图片描述

find_package() 查找安装的依赖包 set() 设置查找对应包的配置文件,找不到的话需要配置,include_directories()添加头文件引用路径 ,引用防止头文件爆红,同时把tesseract 库链接到目标文件,防止编译时出错。

4.编写程序,调用tesseract:

#include <tesseract/baseapi.h>
#include <iostream>
#include <leptonica/allheaders.h>
#include <Windows.h>
int main() {

    SetConsoleOutputCP(CP_UTF8); 
    char *outText;
 
    tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
    // 初始化Tesseract,指定语言为英文,不进行布局分析
    if (api->Init(NULL, "eng")) {
        fprintf(stderr, "Could not initialize tesseract.\n");
        exit(1);
    }
 
    // 打开要识别的图片文件
    Pix *image = pixRead("image.png");
    api->SetImage(image);
    // 获取识别结果
    outText = api->GetUTF8Text();
    printf("OCR output:\n%s", outText);
 
    // 释放内存
    api->End();
    delete [] outText;
    pixDestroy(&image);
    delete api;
 
    return 0;
}

5.根据配置文件来构建项目,并生成可行性文件

cd build
cmake .. -G "Visual Studio 17 2022" -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake"
cmake --build . --config Release

可以看到在build/release 下生成了可执行文件

下载训练数据:

从github复制tessdata文件夹到项目Release目录

添加中文字库:

https://gitcode.com/tesseract-ocr/tessdata/blob/main/chi_sim.traineddata

6.使用

在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐