我在C++中使用CMake和OpenCV,只是想运行一个简单的程序:
#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 );
}
}
当我cmake时,我没有错误,当我通过执行来运行程序时/测试时,我得到了"图像可以加载"以及正确大小的图像。
为什么我的程序不创建一个显示图像的新窗口?
谢谢!
在imshow之后使用cv::waitKey()
。这是进行openCV渲染所必需的。
使用waitKey(0)
暂停直到按键被按下,或者使用waitKey(1)
尽可能短地暂停。
供进一步参考。