2012-06-21 47 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