2013-12-18 65 views
0

我第一次使用openCV,我按照安裝指南(對於帶有Eclipse CDT的linux)並試圖運行示例程序,但我不斷收到以下錯誤消息。 終止叫做拋出 '的std :: logic_error' 什麼()的一個實例後:basic_string的:: _ S_construct空無效openCV basic_string :: _ S_construct null無效

#include<cv.h> 
#include<highgui.h> 

using namespace cv; 

int main(int argc, char** argv){ 
Mat image; 
image = imread(argv[1], 1); 

if(argc != 2 || !image.data) 
{ 
    printf("No image data \n"); 
    return -1; 
} 

namedWindow("Display Image", CV_WINDOW_AUTOSIZE); 
imshow("Display Image", image); 

waitKey(0); 

return 0; 

}

+1

問題是什麼?在檢查錯誤情況'argc!= 2'之前,你使用'argv [1]',所以如果我是你,我會開始在那裏看。如果'argc == 1',那麼'argv [1]'爲空。 –

+0

我的猜測是'argv [1]'碰巧是空的。 – chris

+0

我通過運行配置通過eclipse參數argv,@SteveJessop你的意思是在我使用argv [1]之前檢查argc,我這樣做,但同樣的問題。 –

回答

0

我後,終於讓我的OpenCV的庫來得到這個同樣的問題鏈接。您可能在沒有參數的情況下運行可執行文件,導致argv [1]在嘗試執行圖像讀取時爲空。在eclipse上,我的解決方案是直接用命令提示符中的參數調用文件; 「testOpenCV.exe imageFile.png」。我顯然是在使用Windows,但只需在參數中調用可執行文件,在linux終端中運行即可。

+0

這只是說「你的argv [1]爲空」 –

相關問題