如何将 Tesseract 链接到 VS 2019 中的C++项目?
How do I link Tesseract to a C++ project in VS 2019?
所以我已经链接了OpenCV,这非常简单,网上有很多指南如何做到这一点。
但是我不知道如何下载Tesseract以在自己的应用程序中使用。我想获取 API 并将其与 OpenCV 结合使用。任何人都可以指导我完成我需要下载的内容以及我需要修改哪些设置才能实现此目的?
安装 vcpkg(MS packager 安装基于 Windows 的开源项目(并使用 powershell 命令,如下所示 .\vcpkg install tesseract:x64-windows-static.像Leptonica这样的依赖库将自动为您安装。可以使用 .\vcpkg 集成安装自动将 tesseract 集成到您的 VS 项目中。
我遇到了类似的问题,在这个线程中,我分享了我如何解决它的经验。可能对某人有帮助。我将在这里处理文本:
几天来,我一直在尝试将tesseract库链接到Visual Studio 2019中的c ++项目,我终于设法做到了。 我找到的任何线程甚至官方 tesseract 文档都没有关于该怎么做的完整说明列表。
我会列出我所做的,希望它能帮助某人。我不假装这是这样做的最佳方法。
官方 tesseract 文档中有基本提示。 转到"窗口"部分。 我确实安装了
sw
和cppan
但我想没有必要。 这里最主要的是安装 vcpkg。 它需要 Git,所以我安装了它。 然后:> cd c:tools
(我把它安装在c:tools
,你可以选择任何目录(> git clone https://github.com/microsoft/vcpkg
> .vcpkgbootstrap-vcpkg.bat
> .vcpkgvcpkg install tesseract:x64-windows-static
(我用的是x64版本(> .vcpkgvcpkg integrate install
他们说,在这一点上,一切都应该会起作用。应该包含标头,应该链接库。但没有一个对我有用。
将项目配置更改为 x64 版(如果安装了 x86 tesseract,则更改为 x86 版(。
要包含标头:转到项目属性 -> C/C++ -> 常规。将"其他包含目录"设置为
C:toolsvcpkginstalledx64-windows-staticinclude
(或安装 vcpkg 的任何位置(链接库:项目属性 -> 链接器 -> 常规。将其他库目录设置为
C:toolsvcpkginstalledx64-windows-staticlib
项目属性 -> C/C++ ->代码生成。将运行时库设置为
Multi-threaded(/MT)
。否则我收到诸如"运行时不匹配静态与 DLL"之类的错误Tesseract 库无法链接到它的依赖项,所以我将我安装的所有库都添加到
C:toolsvcpkginstalledx64-windows-staticlib
. 项目属性 ->链接器 ->输入。我将"其他依赖项"设置为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文件。
下载 tessdata。我从官方文档中得到它。 顺便说一句,就我的目的而言,tessdata_fast比tessdata_best工作得更好:) 所以我下载了单个"eng"文件并像
C:toolsTesseractDatatessdataeng.traineddata
一样保存它。然后我添加了值为
C:toolsTesseractDatatessdata
的环境变量TESSDATA_PREFIX
。我还向 Path 变量添加了C:toolsTesseractData
(以防万一(
在这一切之后,它终于为我工作了。
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- .cpp和.h文件中的模板专用化声明
- 反向给定链表中的K节点
- 正在查找文档以获得PS4平台的C++中的设备信息
- enum是C++中的宏变量还是整数变量
- C++17中函数模板中的静态数组初始化(MSVC 2019)
- 视觉studo 2019中的漫画和静态/动态绑定
- C2011 'CMemDC':Visual Studio 2019中的'class'类型重新定义
- 使用 NuGet 填充 Visual Studio 2019 中的 CMake 依赖项
- 如何将 Tesseract 链接到 VS 2019 中的C++项目?
- 如何将字符串(2019年10月3日星期四18:45:10)转换为cpp中的time_t格式?
- Visual Studio 中的 lcr 游戏 c++ LINK 2019 错误
- CodeBlocks和Visual Studio 2019中的不同结果
- Visual Studio 2019 中的"C linkage function cannot return C++ class"
- 链接另一个文件中的函数时,Qt 上出现错误 LNK 2019
- 了解Visual Studio 2010中的此错误(LNK 2019)
- 通用 LNK 2019 - 头文件中的函数声明 - 源文件中的定义
- 使用 C++ 在 directX 11 中的 VS 2013 中获取 LNK 2019 错误
- 决策搜索树中的链接错误2019和1120
- LNK 2019/1120我的头文件/源文件实践中的双重链接列表错误