Chr*_*ris 3 c++ ocr installation tesseract
在 Windows 10 上安装 tesseract 以使用 C++ 进行开发时遇到问题。
任何人都可以提供获取指南:
1. Leptonica(tesseract 需要)lib 并包含
2. Tesseract 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;
}
Run Code Online (Sandbox Code Playgroud)
安装 vcpkg(MS packager 用于安装基于 Windows 的开源项目)并使用 powershell 命令,如下所示.\vcpkg install tesseract:x64-windows-static。系统Leptonica会自动为您安装依赖库。tesseract 可以使用以下命令自动集成到您的 VS 项目中.\vcpkg integrate install.
几天来,我一直试图将 tesseract 库链接到我在 Visual Studio 2019 中的 C++ 项目,我终于设法做到了。我发现的任何线程甚至官方 tesseract 文档都没有完整的操作说明列表。
我会列出我所做的,希望它会帮助某人。我不假装它是这样做的最佳方式。
tesseract 官方文档中有一些基本的技巧。转到“Windows”部分。我确实安装了sw,cppan但我想没有必要。这里的主要内容是安装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
他们说,此时一切都应该有效。应包含标题,应链接库。但没有人为我工作。
将项目配置更改为 Release x64(或 Release x86,如果您安装了 x86 tesseract)。
要包含标题:转到项目属性 -> C/C++ -> 常规。将其他包含目录设置为C:\tools\vcpkg\installed\x64-windows-static\include(或安装 vcpkg 的任何位置)
链接库:项目属性 -> 链接器 -> 常规。将其他库目录设置为C:\tools\vcpkg\installed\x64-windows-static\lib
项目属性 -> C/C++ -> 代码生成。将运行时库设置为Multi-threaded(/MT). 否则我会收到诸如“runtime mismatch static vs DLL”之类的错误
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 文件。
下载测试数据。我是从官方文档中得到的。顺便说一句,就我的目的而言,tessdata_fast 比 tessdata_best 工作得更好:) 所以我下载了单个“eng”文件并将其保存为C:\tools\TesseractData\tessdata\eng.traineddata.
然后我添加TESSDATA_PREFIX了 value 的环境变量C:\tools\TesseractData\tessdata。我还添加C:\tools\TesseractData了 Path 变量(以防万一)
毕竟这一切终于对我有用了。
| 归档时间: |
|
| 查看次数: |
4377 次 |
| 最近记录: |