2015-12-11 25 views
2

我想过把这个放在超级用户或其他东西上,但由于我的问题与编译后发生的事情有关,我认为这里是最好的。在openCV Mat上的Tesseract失败(安装问题?)

我的系统:ubuntu 14.04g++ 4.9

我试图在我的C++程序中使用的正方体。

因此,经过相当的斗争,我得到tesseract安装过程中没有错误的安装。我的问题是,编译并运行我的程序后,我得到的似乎是罕见的错误:

index >= 0 && index < size_used_:Error:Assert failed:in file ../ccutil/genericvector.h, line 512 
Segmentation fault (core dumped) 

我能找到什么知之甚少这个错误是,它有时可以缺少语言数据引起的,但我根据this,查看正确文件夹中的所有正确文件。

软件版本:tesseract 3.02.02leptonica-1.71libjpeg 8d : libpng 1.2.50 : libtiff 4.0.3 : zlib 1.2.8

我对正方体安装源:here。我开始尝试tesseract 3.03,但它会在make期间失败。

我使用这些标志没有警告编译:

g++ -Wall -std=c++11 alt_2.cpp -ggdb `pkg-config --cflags opencv` `pkg-config --cflags tesseract` -o alt_2 `pkg-config --libs opencv` `pkg-config --libs tesseract` 

这里是我的代码,使用的Tesseract:

#include "tesseract/baseapi.h" 
... 
tesseract::TessBaseAPI tess; 
tess.Init(NULL, lang, tesseract::OEM_DEFAULT); 
tess.SetPageSegMode(tesseract::PSM_SINGLE_BLOCK); 
tess.SetImage((uchar*)col0.data, col0.cols, col0.rows, 1, col0.cols); 

tess.GetUTF8Text(); 

tess.GetUTF8Text();是什么原因造成的错误。如果它被注释掉,则不会发生错误。 col0是我的Mat图片。

我现在全都没有想法和耐心。所以如果任何一种灵魂都有这方面的经验,请帮忙。

感谢您的阅读!

回答

5

我不想回答我自己的问题,但我知道它的工作。

因此,我删除了所有内容,并重新安装了tesseract 3.0.3。同时使文件我还是得到了错误

libtool: link: g++ -std=c++11 -o .libs/tesseract tesseract- 
tesseractmain.o ./.libs/libtesseract.so -lrt -llept -lpthread 
./.libs/libtesseract.so: undefined reference to some_leptonic_functions 

那么,什么问题是是,虽然tesseract -v报道leptonica-1.71,也有已被安装了apt-get这是旧的它的Debian软件包。所以在做完sudo apt-get remove libleptonica-dev之后,make完全没有错误,并且我能够完美地运行代码。

要清楚,这需要安装libleptonica和tesseract的来源,而不是apt-get

我希望这可以帮助别人,因为这是一个令人沮丧的过程。

+5

回答你自己的问题没有错。比把知识留给自己好得多。 –