如何在VS 2019中将Tesseract链接到C ++项目?

时间:2019-10-19 10:16:34

标签: c++ visual-studio opencv tesseract

因此,我已经链接了OpenCV,这非常简单,并且在线上有许多指南来指导您执行此操作。

但是我不知道如何下载Tesseract以在自己的应用程序中使用。我想获取API并将其与OpenCV一起在我的代码中使用。谁能指导我完成我需要下载的内容以及需要进行哪些设置才能达到目的?

2 个答案:

答案 0 :(得分:1)

安装vcpkg(MS打包器以安装基于Windows的开源项目),并使用powershell命令,例如。\ vcpkg安装tesseract:x64-windows-static。像Leptonica这样的依赖库将自动为您安装。可以使用。\ vcpkg集成安装将tesseract自动集成到VS项目。

答案 1 :(得分:0)

我遇到了类似的问题,在 this thread 我分享了我如何解决它的经验。可能对某人有帮助。我会在这里处理文本:

几天来,我一直在尝试将 tesseract 库链接到我在 Visual Studio 2019 中的 C++ 项目,我终于做到了。 我发现的任何线程甚至官方 tesseract 文档都没有完整的操作说明列表。

我会列出我所做的,希望对某人有所帮助。我不假装这是这样做的最佳方式。

  1. official tesseract documentation 中有一些基本提示。 转到“Windows”部分。 我确实安装了 swcppan,但我想没有必要。 这里的主要内容是安装 vcpkg。 它需要 Git 所以我安装了它。 然后:

    > cd c:tools(我安装在c:\tools,你可以选择任何目录)

    > git clone https://github.com/microsoft/vcpkg

    > .\vcpkg\bootstrap-vcpkg.bat

    > .\vcpkg\vcpkg install tesseract:x64-windows-static(我使用的是 x64 版本)

    > .\vcpkg\vcpkg integrate install

在这一点上,一切都应该正常了,他们说。应包含标题,应链接库。但没有一个对我有用。

  1. 将项目配置更改为 Release x64(如果您安装了 x86 tesseract,则为 Release x86)。

  2. 要包含标题:转到项目属性 -> C/C++ -> 常规。将其他包含目录设置为 C:\tools\vcpkg\installed\x64-windows-static\include(或安装 vcpkg 的任何位置)

  3. 链接库:项目属性 -> 链接器 -> 常规。将其他库目录设置为 C:\tools\vcpkg\installed\x64-windows-static\lib

  4. 项目属性 -> C/C++ -> 代码生成。将运行时库设置为 Multi-threaded(/MT)。否则我会收到诸如“运行时不匹配静态与 DLL”之类的错误

  5. Tesseract 库无法链接到其依赖项,因此我将已安装的所有库添加到 C:\tools\vcpkg\installed\x64-windows-static\lib。 项目属性 -> 链接器 -> 输入。我将附加依赖项设置为 archive.lib;bz2.lib;charset.lib;gif.lib;iconv.lib;jpeg.lib;leptonica-1.80.0.lib;libcrypto.lib;libpng16.lib;libssl.lib;libwebpmux.lib;libxml2.lib;lz4.lib;lzma.lib;lzo2.lib;openjp2.lib;tesseract41.lib;tiff.lib;tiffxx.lib;turbojpeg.lib;webp.lib;webpdecoder.lib;webpdemux.lib;xxhash.lib;zlib.lib;zstd_static.lib;%(AdditionalDependencies)

之后它终于编译并启动了。

但是... api->Init 返回了 -1。要使用 tesseract,您应该拥有 tessdata 目录,其中包含您需要的语言的 .traineddata 文件。

  1. 下载tessdata。我从 official docs 那里得到的。 顺便说一句,就我的目的而言,tessdata_fast 比 tessdata_best 工作得更好:) 所以我下载了单个“eng”文件并将其保存为 C:\tools\TesseractData\tessdata\eng.traineddata

  2. 然后我添加了值为 TESSDATA_PREFIX 的环境变量 C:\tools\TesseractData\tessdata。我还在路径变量中添加了 C:\tools\TesseractData(以防万一)

毕竟这一切终于对我有用了。