【问题标题】:How do I link Tesseract to a C++ project in VS 2019?如何在 VS 2019 中将 Tesseract 链接到 C++ 项目?
【发布时间】:2020-02-16 03:30:57
【问题描述】:

所以我已经链接了 OpenCV,这非常简单,网上有很多指南如何做到这一点。

但我不知道如何下载 Tesseract 以在自己的应用程序中使用。我想获取 API 并将其与 OpenCV 结合在我的代码中使用。谁能指导我完成我需要下载的内容以及我需要修改哪些设置才能实现这一目标?

【问题讨论】:

    标签: c++ visual-studio opencv tesseract


    【解决方案1】:

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

    【讨论】:

    • 好的,我应该在哪里执行此操作:.\vcpkg 集成安装。另外,我是否需要弄乱解决方案设置,例如指定包含库或其他依赖项?
    • 安装vcpkg后,可以打开Powershell进入这些命令行。您也可以手动指定 .h 和 .lib 的位置
    【解决方案2】:

    我遇到了类似的问题,我在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++ -> 常规。将 Additional Include Directories 设置为 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 lib 无法链接到其依赖项,因此我将已安装的所有库添加到 C:\tools\vcpkg\installed\x64-windows-static\lib。 项目属性 -> 链接器 -> 输入。我将 Additional Dependencies 设置为 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. 然后我添加了值为C:\tools\TesseractData\tessdata 的环境变量TESSDATA_PREFIX。我还在路径变量中添加了C:\tools\TesseractData(以防万一)

    在这一切之后,它终于对我有用了。

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 1970-01-01
      • 2021-06-14
      • 2019-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      相关资源
      最近更新 更多