介绍
Leptonica 是一个图像处理的开源库,Tesseract 是 Google 开源的 OCR 库,它们的应用范围非常广泛。
一些问题
由于在 Windows 上无法直接进行安装,故需要手动编译。
大多数文档推荐使用 sw (Software Network),它可以直接编译指定程序(类似 pkgbuild),也可以充当包管理器。但由于其编译过程的不透明性、网络资源依赖较多(由于国内网络环境,大部分网址无法直连,间接导致编译失败)等,这里不推荐使用。
准备环境
- mingw-w64-x86_64-8.1.0-release-win32-seh-rt_v6-rev0
- vcpkg
- cmake
- Visual Studio >= 2019
mingw-w64 用于 gcc 支持,vcpkg 是微软开发的能在 Windows 及其他平台上管理 C/C++ 库的工具,cmake 用于编译调用,依赖 Visual Studio 包中的 MSVC 生成器。安装步骤这里不再阐述,请参阅相关文档。
Tips:你可以在系统变量中增加 VCPKG_HOME
并填充 vcpkg 的路径,以方便后续使用。
安装完成后,使用 vckpg 安装构建 leptonica 及 tesseract 需要的依赖。
# for 32-bit system
vcpkg install giflib:x86-windows-static libjpeg-turbo:x86-windows-static liblzma:x86-windows-static libpng:x86-windows-static tiff:x86-windows-static zlib:x86-windows-static
# for 64-bit system
vcpkg install giflib:x64-windows-static libjpeg-turbo:x64-windows-static liblzma:x64-windows-static libpng:x64-windows-static tiff:x64-windows-static zlib:x64-windows-static
Code language: PHP (php)
你可能需要利用特殊联网以加速安装过程。
开始编译
使用 git 克隆 leptonica 及 tesseract 的源码
git clone https://github.com/DanBloomberg/leptonica --single-branch --depth=1
git clone https://github.com/tesseract-ocr/tesseract --single-branch --depth=1
Code language: PHP (php)
注意,这里使用了 master 分支(最新),如遇到某些问题,请尝试切换其他 tag 版本编译。
完成源码库的克隆后,进行编译。
leptonica
# for 32-bit system
mkdir vs16-x86 & cd vs16-x86
cmake .. -G "Visual Studio 16 2019" -A Win32 -DSW_BUILD=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_TOOLCHAIN_FILE=%VCPKG_HOME%\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x86-windows-static -DCMAKE_INSTALL_PREFIX=..\..\build\x86
cmake --build . --config Release --target install
# for 64-bit system
mkdir vs16-x64 & cd vs16-x64
cmake .. -G "Visual Studio 16 2019" -A x64 -DSW_BUILD=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_TOOLCHAIN_FILE=%VCPKG_HOME%\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DCMAKE_INSTALL_PREFIX=..\..\build\x64
cmake --build . --config Release --target install
Code language: PHP (php)
tesseract
# for 32-bit system
mkdir vs16-x86 & cd vs16-x86
cmake .. -G "Visual Studio 16 2019" -A Win32 -DSW_BUILD=OFF -DBUILD_SHARED_LIBS=ON -DBUILD_TRAINING_TOOLS=OFF -DCMAKE_INSTALL_PREFIX=..\..\build\x86
cmake --build . --config Release --target install
# for 64-bit system
mkdir vs16-x64 & cd vs16-x64
cmake .. -G "Visual Studio 16 2019" -A x64 -DSW_BUILD=OFF -DBUILD_SHARED_LIBS=ON -DBUILD_TRAINING_TOOLS=OFF -DCMAKE_INSTALL_PREFIX=..\..\build\x64
cmake --build . --config Release --target install
Code language: PHP (php)
注意事项
对于 leptonica ,目前需要在编译时显式指定 -DBUILD_SHARED_LIBS=ON
以作为共享库。对于 tesseract,为对平台进行最大兼容,自动优化已关闭 -DAUTO_OPTIMIZE=OFF,你可以根据一些平台提供的指令集进行相关优化。如 AVX、 SSE4.1等。 是否启用优化已无法手动控制,详情请参阅这里。同时,根据先前其他用户给 tesseract 开发团队发送的邮件中确定,tesseract 会在启动时自动确定是否使用及选择指定优化指令集。
Refer: https://github.com/charlesw/tesseract/blob/master/docs/Compling_tesseract_and_leptonica.md
1 条评论
tidex · 2022年9月10日 上午12:13
沙发