Связать Tesseract libs с QtCreator


Я пытаюсь запустить программу на C++, которая основана на Tesseract API, и я использую QtCreator в качестве IDE на Ubuntu, чтобы выполнить анализ макета страницы:

int main(void)
{
int left, top, right, bottom;

tesseract::TessBaseAPI tessApi;
tessApi.InitForAnalysePage();

cv::Mat img = cv::imread("document.png");
tessApi.SetImage(reinterpret_cast<const uchar*>(img.data), img.size().width, img.size().height, img.channels(), img.step1());

tesseract::PageIterator *iter = tessApi.AnalyseLayout();

while (iter->Next(tesseract::RIL_BLOCK))
    iter->BoundingBox( tesseract::RIL_BLOCK, &left, &top, &right, &bottom);

return EXIT_SUCCESS;
}

Но в свою очередь я получил такие ошибки, подтверждающие, что Тессеракт и Qt не связаны :

main.cpp:11: error: undefined reference to `tesseract::TessBaseAPI::TessBaseAPI()'
main.cpp:12: error: undefined reference to `tesseract::TessBaseAPI::InitForAnalysePage()'
main.cpp:16: error: undefined reference to `tesseract::TessBaseAPI::SetImage(unsigned char const*, int, int, int, int)'
main.cpp:18: error: undefined reference to `tesseract::TessBaseAPI::AnalyseLayout()'

Вот мой файл. pro:

INCLUDEPATH += /usr/local/include/opencv 
           /usr/include/tesseract

LIBS += -L"/usr/local/opencv/lib"   -lopencv_calib3d 
                                -lopencv_contrib 
                                -lopencv_core 
                                -lopencv_features2d 
                                -lopencv_flann 
                                -lopencv_gpu 
                                -lopencv_highgui 
                                -lopencv_imgproc 
                                -lopencv_legacy 
                                -lopencv_ml 
                                -lopencv_nonfree 
                                -lopencv_objdetect 
                                -lopencv_ocl 
                                -lopencv_photo 
                                -lopencv_stitching 
                                -lopencv_superres 
                                -lopencv_video 
                                -lopencv_videostab

LIBS += -L"/usr/bin/tesseract"
1 3

1 ответ:

У вас есть только путь для lib -L"/usr/bin/tesseract", вы забыли включить lib также. Просто добавьте его, как вы сделали для библиотек openCV.