我的目标是在VStudio 2022中使用C++中的Tesseract和Nuget包从输入图像中提取数字和文本。
我下载了tesseract 5.2.0(右键单击项目->管理Nuget包->浏览)作为Nuget包5.2.0
x1c 0d1x的数据
但是,当我包含Tesseract时:
#include <iostream>
#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
int main() {
tesseract::TessBaseAPI* api = new tesseract::TessBaseAPI();
if (api->Init(nullptr, "eng")) {
fprintf(stderr, "Could not initialize Tesseract.\n");
exit(1);
}
// Open an image
Pix* image = pixRead("D:/tools/img.png");
api->SetImage(image);
// Perform OCR
char* outText = api->GetUTF8Text();
std::cout << "OCR Output:\n" << outText << std::endl;
// Release resources
api->End();
delete[] outText;
pixDestroy(&image);
return 0;
}
字符串
它给了我这些错误。
的
我也读了THIS并安装了runtime 64,但没有工作。
有没有人知道如何使用tesseract与C++作为Nuget包或任何工作。
2条答案
按热度按时间8qgya5xd1#
这是因为您使用的包不支持原生/C代码,您可以在NuGet库中查看Tesseract包页面:
Tesseract
对于支持native/C的包,这是一个示例:
Microsoft.Web.WebView2
你可以下载它们并查看所有的软件包,你尝试使用的第一个软件包是一个经典的.Net环境的NuGet软件包(Nuget软件包通常都是这样做的)。
正如你所看到的,Tesseract包的内容中不包含.h文件,这就是为什么你不能在C++项目中引用它。
从NuGet Gallery,我们还可以获得这些信息:
Tesseract:
x1c 0d1x的数据
Microsoft.Web.WebView2
的
vsaztqbk2#
谢谢Bowman Zhu-MSFT的回答,它给了我一个方向,经过彻底的搜索,我能够找到一个在C++中使用tesseract的解决方案.有一个完整的官方tesseract documentation.然而,我没有去与内置的解决方案,因为它需要更长的时间和位更复杂的我.根据鲍曼的建议,我尝试与vcpkg.以下步骤从vcpkg我安装在windows上vckg.对于此步骤:
字符串
我用这个替换安装tesseract在windows上的x64版本
型
最后我运行这个
型
然后我在Visual Studio 2022中用C++打开一个新的控制台应用程序。现在它必须包含包,包含和lib文件夹,为此,我做了以下步骤:
中
然后,我构建并运行了我在问题中提到的同一段代码,一切都运行得很好,那些错误不再存在了。
然而,我遇到了Tesseract的另一个错误:
的
为了解决这个问题,我遵循了以下步骤: