2012-06-21 159 views
0

我已成功安裝OpenCv & Qt在Ubuntu ..我可以調試和運行一些示例代碼,但是當我創建QtConsole應用程序我無法建立它... 這裏是我的示例代碼隨機白色中的一些像素圖像OpenCV編譯Ubuntu

opencv2/core/core.hpp 
opencv2/highgui/highgui.hpp 
void salt(cv::Mat &image, int n) 
{ 
    for(int k=0; k<n; k++) 
    { 
     int i=rand()%image.cols; 
     int j=rand()%image.rows; 

     if(image.channels() == 1) 
     { 
      image.at<uchar>(j,i)=255; 
     } 
     else if(image.channels() == 3) 
     { 
      image.at<cv::Vec3b>(j,i)[0]=255; 
      image.at<cv::Vec3b>(j,i)[1]=255; 
      image.at<cv::Vec3b>(j,i)[2]=255; 
     } 
    } 
} 

int main() 
{ 
    cv::Mat resim = cv::imread("boldt.jpg"); 
    salt(resim,3000); 
    cv::namedWindow("Cerceve"); 
    cv::imshow("Cerceve",resim); 
} 

我已經加入我的libraires在.pro文件中像

INCLUDEPATH += /usr/local/include/opencv2 

LIBS += -L/usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_features2d -lopencv_calib3d 

,當我嘗試從 終端,它說運行程序:

init已完成

OpenGL的支持可

並沒有任何反應.. 沒有錯誤,而調試

+0

你如何編譯它? – Spo1ler

+0

編輯標籤,因爲我什麼都看不到,這表明使用Qt庫。你只是使用qmake作爲你的makefile製造商。作爲參考,一個Qt控制檯應用程序有一個看起來像'int main(int argc,char * argv []){QCoreApplication a(argc,argv);返回a.exec(); }' –

+0

您是否能夠構建併成功運行使用您構建的OpenCV二進制文件的非Qt應用程序? – Rook

回答

1

在main()

cv::imshow("Cerceve",resim); 
cv::waitKey(0); 
return 0; 
末尾添加 cv::waitKey(..)

調用cv::waitKey(param) i因爲它是在你打開的窗口中處理事件循環(除了在等待期間返回用戶按下的鍵之外)。這裏param是函數返回之前等待的毫秒數。使用0進行無限等待,直到按下某個鍵。

+0

當我的實際程序運行良好時,我仍然可以獲得輸出,因爲init可以使用opengl支持。 Plz幫助。 – dazzieta

+0

@ utkarsh13:請問這是一個新問題.. – SuperSaiyan

+0

我已經問過它作爲一個新問題,但沒有人回答。該問題的鏈接是http://stackoverflow.com/questions/37509058/why-am-i-getting-init-done-opengl-support-available-output-even-when-i-am-not 請幫助。 – dazzieta