如何在C++控制台应用程序Visual Studio 2022中使用Tesseract作为Nuget包

bxjv4tth  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(235)

我的目标是在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包或任何工作。

8qgya5xd

8qgya5xd1#

这是因为您使用的包不支持原生/C代码,您可以在NuGet库中查看Tesseract包页面:
Tesseract
对于支持native/C
的包,这是一个示例:
Microsoft.Web.WebView2
你可以下载它们并查看所有的软件包,你尝试使用的第一个软件包是一个经典的.Net环境的NuGet软件包(Nuget软件包通常都是这样做的)。
正如你所看到的,Tesseract包的内容中不包含.h文件,这就是为什么你不能在C++项目中引用它。
从NuGet Gallery,我们还可以获得这些信息:

Tesseract:

x1c 0d1x的数据

Microsoft.Web.WebView2


vsaztqbk

vsaztqbk2#

谢谢Bowman Zhu-MSFT的回答,它给了我一个方向,经过彻底的搜索,我能够找到一个在C++中使用tesseract的解决方案.有一个完整的官方tesseract documentation.然而,我没有去与内置的解决方案,因为它需要更长的时间和位更复杂的我.根据鲍曼的建议,我尝试与vcpkg.以下步骤从vcpkg我安装在windows上vckg.对于此步骤:

.\vcpkg\vcpkg install [packages to install] --triplet=x64-windows

字符串
我用这个替换安装tesseract在windows上的x64版本

.\vcpkg\vcpkg install tesseract:x64-windows-static


最后我运行这个

.\vcpkg\vcpkg integrate install


然后我在Visual Studio 2022中用C++打开一个新的控制台应用程序。现在它必须包含包,包含和lib文件夹,为此,我做了以下步骤:

  • 首先进入你安装vckpg的文件夹。它必须有很多子文件夹。
  • 复制vckpg文件夹中include目录的路径,进入Visual Studio中的项目,在解决方案资源管理器窗口中右键单击项目,选择properties选项,将include文件夹的路径添加到**C/C++ -> General ->*Additional Include Directories x1c 0d1x
  • 复制vckpg文件夹中lib目录的路径,在Visual Studio中进入项目,在解决方案资源管理器窗口中右键单击项目,选择properties选项,将包含文件夹的路径添加到**Linker -> General ->*Additional Library Directories

然后,我构建并运行了我在问题中提到的同一段代码,一切都运行得很好,那些错误不再存在了。
然而,我遇到了Tesseract的另一个错误:



为了解决这个问题,我遵循了以下步骤:

  • 我去了官方的tessdoc
  • 然后我下载了一个“eng”文件,并将其保存在我的PC上,我从here下载的eng文件
  • 我已经保存了eng文件,如下子文件夹结构C:\tools\TesseractData\tessdata。eng文件在tessdata文件夹中。
  • 然后在我的PC上添加环境变量TESSDATA_PREFIX,其值为eng文件的路径C:\tools\TesseractData\tessdata
  • 最后,我重新启动我的电脑,再次构建项目,运行它,tesseract开始检测文本和数字,就像一个魅力。

相关问题