gpt4 book ai didi

c++ - 如何在 Visual Studio 2010 中实现 Tesseract 与项目一起运行

转载 作者:可可西里 更新时间:2023-11-01 18:07:56 26 4
gpt4 key购买 nike

我在 Visual Studio 2010 中有一个 C++ 项目并希望使用 OCR。我遇到了很多关于 Tesseract 的“教程”,但遗憾的是,我得到的只是头疼和浪费时间。

在我的项目中,我将图像存储为 Mat。我的问题的一种解决方案是将此 Mat 保存为图像(例如 image.jpg),然后像这样调用 Tesseract 可执行文件:

system("tesseract.exe image.jpg out");

这让我得到一个输出 out.txt 然后我调用

infile.open ("out.txt");

从 Tesseract 读取输出。

这一切都很好并且像椅子一样工作,但它不是最佳解决方案。在我的项目中,我正在处理一个视频,因此以 10+ FPS 的速度保存/调用 .exe/写入/读取 并不是我真正想要的。我想对现有代码实现 Tesseract,以便能够将 Mat 作为参数传递并立即获得作为 String 的结果。

您知道使用 Visual Studio 2010 实现 Tesseract OCR 的任何好的教程(首选分步教程)吗?还是您自己的解决方案?

最佳答案

好的,我明白了,但它仅适用于 ReleaseWin32 配置(无调试或 x64)。 Debug配置下链接错误多。

所以,

1. 首先,在这里下载准备好的库文件夹(Tesseract + Leptonica):

Mirror 1(Google Drive)

Mirror 2(MediaFire)


2.tesseract.zip解压到C:\


3. 在 Visual Studio 中,进入 C/C++ > General > Additional Include Directories

插入 C:\tesseract\include


4.Linker > General > Additional Library Directories

插入 C:\tesseract\lib


5.Linker > Input > Additional Dependencies

添加:

liblept168.lib
libtesseract302.lib

示例代码应如下所示:

#include <tesseract\baseapi.h>
#include <leptonica\allheaders.h>
#include <iostream>

using namespace std;

int main(void){

tesseract::TessBaseAPI api;
api.Init("", "eng", tesseract::OEM_DEFAULT);
api.SetPageSegMode(static_cast<tesseract::PageSegMode>(7));
api.SetOutputName("out");

cout<<"File name:";
char image[256];
cin>>image;
PIX *pixs = pixRead(image);

STRING text_out;
api.ProcessPages(image, NULL, 0, &text_out);

cout<<text_out.string();

system("pause");
}

要与 OpenCV 和 Mat 类型的图像交互,请查看 HERE

关于c++ - 如何在 Visual Studio 2010 中实现 Tesseract 与项目一起运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18180824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com