2016-07-21 11 views
0

ich CMake und OpenCV mit C bin mit ++ und ich versuche nur ein einfaches Programm auszuführen:OpenCV wird Bild laden, aber nicht angezeigt wird es

#include "opencv/highgui.h" 
#include "opencv/highgui.hpp" 
#include "opencv/cv.h" 
#include "opencv/cxcore.h" 
#include "opencv/cxcore.hpp" 
#include <stdio.h> 
#include <iostream> 

using namespace cv; 
using namespace std; 

int main() 
{ 

    Mat image = imread("test.jpg", CV_LOAD_IMAGE_UNCHANGED); 
    if (!image.data) //check whether the image is loaded or not 
    { 
     cout << "Image cannot be loaded." << endl; 
    } 
    else 
    { 
     cout<<"Image can be loaded."<<endl; 
     cout<<"Size is "<<image.size().height<<","<<image.size().width<<endl; 
     namedWindow("Display window", CV_WINDOW_AUTOSIZE); 
     imshow("Display Image", image); 
    } 
} 

Als ich cmake, ich keine Fehlermeldungen erhalten, und wenn ich das laufen Programm indem ich ./test, bekomme ich "Bild kann geladen werden" zusammen mit der richtigen Größe des Bildes.

Warum erstellt mein Programm kein neues Fenster, das das Bild anzeigt?

Vielen Dank!

+0

Welche Version von OpenCV verwenden Sie? –

+0

Entschuldigung dafür, dass dies in der ursprünglichen Frage nicht enthalten ist. 2.0.0 – user8333141

+1

Mögliches Duplikat von [Konfigurieren eines C++ OpenCV-Projekts mit Cmake] (http://stackoverflow.com/questions/13970377/configuring-an-c-opencv-project-with-cmake) –

Antwort

3

Verwenden Sie cv::waitKey() nach IMshow. Dies ist erforderlich, um mit dem OpenCV-Rendering fortzufahren.

Verwenden Sie waitKey(0) zu pausieren, bis eine Taste gedrückt wird oder waitKey(1), um so kurz wie möglich zu pausieren.

Für weitere reference.