在Windows 10上安装tesseract for C++

nwo49xxi  于 2023-06-25  发布在  Windows
关注(0)|答案(4)|浏览(316)

我在Windows 10上安装tesseract以在C++中开发时遇到了问题。
任何人都可以提供一个指南来获得:

  1. Leptonica(tesseract要求)lib,包括
    2.宇宙魔方lib和包括
    3.将两者链接到项目(例如Visual Studio)
    因此https://github.com/tesseract-ocr/tesseract/wiki/APIExample示例可以工作:
#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>

int main()
{
    char *outText;

    tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
    // Initialize tesseract-ocr with English, without specifying tessdata path
    if (api->Init(NULL, "eng")) {
        fprintf(stderr, "Could not initialize tesseract.\n");
        exit(1);
    }

    // Open input image with leptonica library
    Pix *image = pixRead("/usr/src/tesseract/testing/phototest.tif");
    api->SetImage(image);
    // Get OCR result
    outText = api->GetUTF8Text();
    printf("OCR output:\n%s", outText);

    // Destroy used object and release memory
    api->End();
    delete[] outText;
    pixDestroy(&image);

    return 0;
}
2cmtqfgy

2cmtqfgy1#

我一直在尝试将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)。
1.要包括标题,请执行以下操作:进入项目属性-> C/C
->常规。将Additional Include Directories设置为C:\tools\vcpkg\installed\x64-windows-static\include(或安装vcpkg的任何位置)
1.要链接库,请执行以下操作:项目属性->链接器->常规。将其他库目录设置为C:\tools\vcpkg\installed\x64-windows-static\lib
1.项目属性-> C/C++ ->代码生成。将运行时库设置为Multi-threaded(/MT)。否则,我得到的错误,如“运行时不匹配静态与DLL”

  1. Tesseract lib无法链接到它的依赖项,所以我将所有已安装的库添加到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
    1.然后添加环境变量TESSDATA_PREFIX,值为C:\tools\TesseractData\tessdata。我还在Path变量中添加了C:\tools\TesseractData(以防万一)
    经过这一切,它终于为我工作了。
smdnsysy

smdnsysy2#

安装vcpkg(MS packager来安装基于Windows的开源项目)并使用powershell命令,如so .\vcpkg install tesseract:x64-windows-static。像Leptonica这样的依赖关系库将自动为您安装。可以使用.\vcpkg integrate install.将镶嵌镶嵌件自动集成到VS项目中

i2byvkas

i2byvkas3#

另外,我发现你还需要通过以下方式安装lzo2.lib./vcpkg install lzo:x64-windows-static。然后按照@Nick的描述拉入lzo2.lib。
最新版本的Tesseract不再支持上面列出的某些库。VS 19会抱怨它,当你简单地复制他们;只需通过交叉检查删除不再需要的那些。
例如tiffxx.lib,hashxx.lib和其他一些。

46qrfjad

46qrfjad4#

编写命令msys 2
pacman -S mingw-w64-{i686,x86_64}-tesseract-ocr

相关问题