Windows 10 下 Leptonica、Tesseract 的编译

发布时间:2026/8/5 21:11:26
Windows 10 下 Leptonica、Tesseract 的编译 Windows 10 下 Leptonica、Tesseract 的编译GitHub 链接https://github.com/Ruheng-He/Leptonica_Tesseract_compilation_Windows_10环境Leptonica1.78.0Tesseract4.1.1Visual Studio16.11.21Visual C2019 14.32.31332.0CMake3.25.1Software Network26-Nov-2022 17:19vcpkg2022-11-10-5fdee72bc1fceca198fb1ab7589837206a8b81ba编译过程文件准备各内容的下载链接leptonica-1.78.0.tar.gzhttps://github.com/DanBloomberg/leptonica/releases/download/1.78.0/leptonica-1.78.0.tar.gztesseract-4.1.1.tar.gzhttps://github.com/tesseract-ocr/tesseract/archive/refs/tags/4.1.1.tar.gzcmake-3.25.1-windows-x86_64.msihttps://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1-windows-x86_64.msisw-master-windows-client.ziphttps://software-network.org/client/sw-master-windows-client.zipvcpkg.exehttps://github.com/microsoft/vcpkg/archive/refs/heads/master.zipeng.traineddatahttps://github.com/tesseract-ocr/tessdata/blob/main/eng.traineddataSoftware Network 配置在系统变量 Path 中添加 sw.exe 的路径以管理员身份运行 Windows PowerShell。sw setup# 如果连接了代理服务器可以尝试 sw --ignore-ssl-checks setup。setup后相关文件会被放在C:\Users\Your_User_Name\\.sw。vcpkg 配置在 vcpkg 文件夹下以管理员身份运行 Windows PowerShell。执行命令.\bootstrap-vcpkg.bat以产生vcpkg.exe。执行命令.\vcpkg install package_name --tripletx64-windows以获取以下依赖。tiff4.4.0#1giflib5.2.1#3openjpeg2.5.0ijg-libjpeg9elibpng1.6.39libwebp1.2.4liblzma5.2.5#6pkgconf1.8.0#3vcpkg-pkgconfig-get-modules2022-02-10#1zlib1.2.13举例.\vcpkg install tiff --tripletx64-windows。依赖会被存放在.\vcpkg\packages。编译Leptonica运行cmake-gui。在Where is the source code处选择文件夹leptonica-1.78.0。新建一个文件夹假设名为build。在Where to build the binaries处选择文件夹build。点击左下方Configure在弹出窗口的Specify the generator for this project处选择Visual Studio 16 2019。在窗口下方选择Use default native compliers。点击Finish后CMake会自动开始配置。下方log框出现Configuring done后上方的变量框会出现红色再次点击Configure红色消失Configuring donelog框出现以下缺少相关依赖的提示信息。Could NOT find GIF (missing: GIF_LIBRARY GIF_INCLUDE_DIR) Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR) Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR) Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR) Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)在变量框上方勾选Advanced可找到这些missing的变量。对显示NOTFOUND的变量值进行补充。举例如下。ZLIB_INCLUDE_DIR的值修改为.\vcpkg\packages\zlib_x64-windows\includeZLIB_LIBRARY_DUBUG的值修改为.\vcpkg\packages\zlib_x64-windows\debug\lib\zlib.libZLIB_LIBRARY_RELEASE的值修改为.\vcpkg\packages\zlib_x64-windows\lib\zlib.libPKG_CONFIG_EXECUTABLE的值修改为D:\vcpkg\packages\pkgconf_x64-windows\tools\pkgconf\pkg.conf.exeCMAKE_INSTALL_PREFIX这个值是后面VS编译文件的输出目录默认在C:\Program Files (x86)下建议不要修改否则可能影响Tesseract的编译。再次点击Configurelog框输出以下内容。Looking for WEBP Found WEBP library Found openjpeg library配置完成点击Genrate生成VS工程文件。打开上文提到的build文件夹以管理员身份打开后缀为sln的文件。在生成中打开配置管理器活动解决方案配置选择为Release活动解决方案平台选择为x64在项目上下文的生成处勾选ALL_BUILDINSTALLleptonicaZERO_CHECK默认没有勾选INSTALL关闭配置管理器在生成中选择重新生成解决方案可在C:\Program Files (x86)\leptonica处找到编译好的库文件。正常来说这个目录的结构应该如下所示。├─bin ├─cmake ├─include --leptonica ├─lib --pkgconfig编译Tesseract运行cmake-gui。在Where is the source code处选择文件夹tesseract-4.1.1。新建一个文件夹假设名为build_t。在Where to build the binaries处选择文件夹build_t。点击左下方Configure弹出一个窗口。在Specify the generator for this project处选择Visual Studio 16 2019。在窗口下方选择Use default native compliers。点击Finish后CMake会自动开始配置。下方log框出现Configuring incomplete, errors occurred!后上方的变量框出现红色再次点击Configure红色消失。然后取消勾选变量框中的BUILD_TRAINING_TOOLS勾选也行自行根据报错信息添加相关依赖即可。将变量Leptonica_DIR的值设置为上文提到的Leptonica的编译好的库文件所在目录的cmake子目录。CMAKE_INSTALL_PREFIX的作用同上。再次点击Configure。待配置完成点击Genrate生成VS解决方案文件。打开上文提到的build_t文件夹以管理员身份打开后缀为sln的文件。在生成中打开配置管理器将活动解决方案配置选择为Release将活动解决方案平台选择为x64在项目上下文的生成处勾选ALL_BUILDINSTALLlibtesseracttesseractZERO_CHECK默认没有勾选INSTALL关闭配置管理器在生成中选择重新生成解决方案即可在上文的CMAKE_INSTALL_PREFIX这个目录找到编译好的库文件。正常来说这个目录的结构应该如下所示。├─bin ├─cmake ├─include --tesseract ├─lib --pkgconfig测试现在C:\Program Files (x86)下的leptonica和tesseract文件夹可以移动。在VS中新建一个C空项目。打开项目--属性--C/C--常规--附加包含目录包含leptonica和tesseract头文件所在的目录如下所示。.\tesseract\include\tesseract .\leptonica\include\leptonica打开项目--属性--链接器--常规--附加库目录包含leptonica和tesseract头文件所在的目录如下所示。.\leptonica\lib .\tesseract\lib打开项目–属性–链接器–输入–附加依赖项输入leptonica和tesseract库文件的名字如下所示。tesseract41.lib leptonica-1.78.0.lib点击应用、确定。测试如下代码如无意外的话应该会缺少某些dll。在.\vcpkg\packages下可以找到这些dll文件复制到程序所在文件夹即可。测试时还缺少一个jpeg62.dll想办法搞到它。指定英语语言数据eng.traineddata和测试图片的路径运行程序输出图片的OCR结果。#includebaseapi.h#includeallheaders.h#includeiostreamintmain(){char*outText;tesseract::TessBaseAPI*apinew tesseract::TessBaseAPI();if(api-Init(c:/,eng)){fprintf(stderr,Could not initialize tesseract.\n);exit(1);}Pix*imagepixRead(C:/test.jpg);api-SetImage(image);outTextapi-GetUTF8Text();printf(OCR output:\n%s,outText);api-End();delete api;delete[]outText;pixDestroy(image);return0;}完成。