Link 带有 QtCreator 的 tesseract 库
Link tesseract libs with QtCreator
我正在尝试 运行 一个基于 tesseract API 的 C++ 程序,并且我在 Ubuntu 上使用 QtCreator 作为 IDE,以便执行页面布局分析:
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;
}
但反过来我得到了这些类型的错误,确认 tesseract 和 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"
您只有库的路径 -L"/usr/bin/tesseract"
,您也忘记了包含库。就像您为 openCV 库所做的那样添加它。
我正在尝试 运行 一个基于 tesseract API 的 C++ 程序,并且我在 Ubuntu 上使用 QtCreator 作为 IDE,以便执行页面布局分析:
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;
}
但反过来我得到了这些类型的错误,确认 tesseract 和 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"
您只有库的路径 -L"/usr/bin/tesseract"
,您也忘记了包含库。就像您为 openCV 库所做的那样添加它。