Tesseract + opencv 3.0 + windows,文本模块体积小,链接错误

前两天我在answers.opencv.org发布了这个文本,现在我也在这里发布。 http://answers.opencv.org/question/68634/text-contrib-module-and-tesseract/

大家下午好。 首先,对不起我的英文呵呵。 我一直在尝试构buildopencv contrib模块的“文本”,但是我还没有成功。 注意:像xfeatures2d的其他模块从来没有给我一个问题。

我的平台是Windows 7 x64,我使用VS2013作为编译器,我已经按照这个教程( http://vorba.ch/2014/tesseract-3.03-vs2013.html )来build立Tesseract 3.04作为LIB,但编译后它成功,我想用cmake生成vproj,问题如下:

在CMake GUI中,之前select了opencv源码,EXTRAS目录等,我没有得到'Tesseract'组设置正确(INCLUDE AND LIBS)下的variables。 我知道它,因为当我点击configuration时,日志说“Tesseract:NO”。

我已经检查了FindTesseract cmake脚本,我认为它不工作….

请任何人都可以给我一些关于发生什么的线索? 我如何构buildopencv文本模块以使用Tesseract函数?

此外,我试图编译文本模块添加到Tesseract的链接path,但是当我想在我的程序中使用我得到关于未定义符号的链接错误…

这种情况让我困扰了我几天。 有谁在Windows下使用文本模块?


没人能帮助我? 我已经取得了一些进展,现在cmake GUI,我说Tesseract:是的。 问题是我没有find连接leptonica lib的条目,它不在同一Tesseract组中,而是在“未分组条目”中。

好吧,现在问题仍然是一样的,cmake创build的VS解决scheme不能正确地构build文本模块,因为我可以看到Lept lib约为9Mb,而TesseractLib是128Mb(在/ MT和debugging),但是opencv_text300d.lib只有12Mb 。 有些事情是错误的….

我不确定我必须使用什么tesseract版本。 我有两种组合的traid:liblept168-static-mtdll-debug.lib + libtesseract302-static-debug.lib和liblept171-static-mtdll-debug.lib + libtesseract304-static-debug.lib

当然,当我链接文本模块到我的程序,它给我链接错误。


链接错误如下所示:opencv_text300d.lib(ocr_tesseract.obj):错误LNK2019: unresolved external symbol "public: bool __cdecl tesseract::PageIterator::BoundingBox(enum tesseract::PageIteratorLevel,int *,int *,int *,int *)const " (?........................


 ... #include "opencv2/text.hpp" ... string output; cv::Mat aux; Ptr<OCRTesseract> ocr = OCRTesseract::create(); ocr->run(aux, output); ... 

很显然,我已经build立了我的项目与额外的包含目录,链接器额外的库目录和input额外的依赖文本模块。

真的,非常感谢你的进步。

我面临同样的问题。 我想出的解决方案是在文本模块中编辑CMakeLists.txt文件。

更换

 if(${Tesseract_FOUND}) include_directories(${Tesseract_INCLUDE_DIR}) endif() 

 add_definitions( -DWINDOWS) add_definitions( -DNOMINMAX) SET(Tesseract_DIR "C:\\tesseract-build\\tesseract-ocr") SET(Lept_DIR "C:\\tesseract-build\\lib") include_directories( ${Tesseract_DIR}/api ${Tesseract_DIR}/ccutil/ ${Tesseract_DIR}/ccstruct/ ${Tesseract_DIR}/ccmain/ ) link_directories( ${Tesseract_DIR}/vs2013/bin/Win32/DLL_Release/ ${Lept_DIR}/ ${Lept_DIR}/Win32/ ) 

当你运行Cmake时,Tesseract仍然是“否”,Tessaract / Lept库应该是空的。