2015-12-11 23 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

回答你自己的問題沒有錯。比把知識留給自己好得多。 –