繁体   English   中英

使用Qt 5.8构建Tesseract OCR

[英]Build Tesseract OCR with Qt 5.8

我有一个基本的空Qt 5.8项目,并且我想集成Tesseract库来使用它。 我找不到任何完整的分步说明如何执行此操作,因此我希望有人可以分享经验。

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

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

我知道我需要在.pro文件中添加一些附加说明(例如LIBS,HEADERS),但是我不知道有没有正确的方法来执行此操作。

Qt 5.8

Windows 10

MinGW 32位

“ with Qt”部分是多余的,您实际上不需要为了使用通用库而对“ with Qt”做任何事情。

最好使用相同或至少二进制兼容的编译器来构建该库。 实际的构建说明可以在这里找到。

对于Qt PRO文件,您可以简单地使用Creator中的向导 -单击左侧栏中的项目名称(项目树)和“添加库”,然后根据所使用的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 

在Tesseract进入稳定分支之前,我曾在一个也使用OpenCV的项目中做过一次。 这使我省去了所有图像读取库,因为我可以通过OpenCV做到这一点。 我最终通过Cygwin编译了Tesseract,但这使我可以在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函数的错误。 用hypert(不带下划线)替换它可以解决此问题。

这就是我当时为自己记录的一切。 如果您有任何麻烦,请告诉我,以便我能看看是否忘记了包含任何内容。

Ubuntu和MacOS

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

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

视窗

您应该编译tesseract项目,并在此处找到完整的分步说明

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'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM