使用Qt 5.8构建Tesseract OCR

时间:2017-05-02 12:05:20

标签: c++ qt mingw ocr tesseract

我有一个基本的空Qt 5.8项目,我希望集成Tesseract库来使用它。我找不到任何完整的分步说明,所以我希望有人可以分享经验。

我想在我的代码中使用类似的东西:

#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>

我知道我需要在.pro文件中添加一些额外的指令(等LIBS,HEADERS),但我不知道有没有正确的方法可以做到这一点。

Qt 5.8

Windows 10

MinGW 32位

3 个答案:

答案 0 :(得分:0)

&#34;与Qt&#34;部分是多余的,你不需要做任何事情&#34;用Qt&#34;为了使用通用库。

需要使用优选相同或至少二进制兼容的编译器来构建库。可以找到实际构建说明here

对于Qt PRO文件,您只需use the wizard from Creator - 单击左侧栏(项目树)中的项目名称和&#34;添加库&#34;根据您使用的lib类型,按照向导进行操作。

它将按以下格式生成必要的项目定义:

win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/release/ -lmylib
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/debug/ -lmylib
else:unix: LIBS += -L$$OUT_PWD/../../../projects/mylib/ -lmylib

INCLUDEPATH += $$PWD/../../../projects/mylib
DEPENDPATH += $$PWD/../../../projects/mylib

win32:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../../../projects/mylib/release/mylib.lib
else:win32:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../../../projects/mylib/debug/mylib.lib
else:unix: PRE_TARGETDEPS += $$OUT_PWD/../../../projects/mylib/libmylib.a 

答案 1 :(得分:0)

在Tesseract进入其稳定分支之前,我在一个也使用OpenCV的项目中完成了一次。这让我省去了所有的图像阅读库,因为我会通过OpenCV这样做。我最终通过Cygwin编译了Tesseract,但这给了我二进制兼容的libs以便在我的MinGW32项目中使用。

我大部分都关注http://vorba.ch/2014/tesseract-cygwin.html。我将Leptonica 1.72配置为:

./configure --without-giflib --without-zlib --without-libpng --without-jpeg --without-libtiff --without-libwebp --without-libopenjpeg

如果你在cygwin下编译leptonica,源路径中一定不能有任何空格,否则你会得到错误的'\'错误。

要编译tesseract本身,您会发现MinGW不提供strtok_r.h。但是,Tesseract包含一个版本的strtok_r.cpp,所以最简单的解决方法是编辑ambigs.cpp并用函数签名替换#include“strtok_r.h”:

char *strtok_r(char *s, const char * sep, char ** p);

MinGW在math.h中有一个关于_hypot函数的错误。用hypot替换它(没有下划线)修复了这个问题。

这是我当时为自己记录的所有内容。如果您有任何问题请告诉我,以便我可以看到我是否忘记包含任何内容。

答案 2 :(得分:0)

Ubuntu和MacOS

here可以找到不错的参考,并在.pro中为Ubuntu添加以下行:

INCLUDEPATH += /usr/local/include/tesseract
INCLUDEPATH += /usr/local/include/leptonica
LIBS += -ltesseract -llept

Windows

您应该编译tesseract项目,并且可以找到完整的分步说明here

win32:CONFIG(release, debug|release): LIBS += -L'C:/Program Files/tesseract/lib/' -ltesseract50
else:win32:CONFIG(debug, debug|release): LIBS += -L'C:/Program Files/tesseract/lib/' -ltesseract50d
INCLUDEPATH += 'C:/Program Files/tesseract/include'