Tesseract -OCR 引擎 在C++内使用
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创建项目命令:

创建完成后会初始化目录结构,生成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.使用

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



所有评论(0)