为什么这个OpenCV代码没有做任何事情?

时间:2013-11-19 19:16:51

标签: c++ opencv

我一直在尝试使用OpenCV和C ++,但即使我的代码编译(Visual Studio 2010),它也不会做任何事情:

#include <iostream>
#include <stdio.h>
#include "cv.h"
#include "highgui.h"
#include "cvaux.h"
#include "cvwimage.h"
#include "cxcore.h"
#include "cxmisc.h"
#include "ml.h"

using namespace cv;
using namespace std;



int main()

{

    namedWindow("yolo", WINDOW_AUTOSIZE );
    waitKey(1);
    cout << "Why won't this show up?" << endl;

}

它编译好,没有错误,但程序没有做任何事情 - 当我在控制台中打开它时,它不会返回'为什么不显示?'文本 - 没有返回任何内容。

无论我尝试使用哪种代码,它都无法运行,也从不做任何事情。

发生了什么事?

祝你好运

编辑:当我将等待时间设置为0(永久)时,它仍然无效。

3 个答案:

答案 0 :(得分:1)

但是,窗口确实已创建,因为您将waitKey函数设置为1毫秒,它只存在很短的时间。尝试使用:

waitKey(0);

答案 1 :(得分:0)

waitKey(1);是罪魁祸首。最短时间是1毫秒(你在这里得到的#s)

要么成功:

waitKey(0); // forever

或增加合理的时间

waitKey(5000); // 5 secs

答案 2 :(得分:0)

它必须是,

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

cv::namedWindow("test_1", CV_WINDOW_AUTOSIZE );
cvWaitKey();
std::cout << "This will work because I just tested it." << endl;

我使用CMake链接库。 CMake代码是,

FIND_PACKAGE( OpenCV REQUIRED )
TARGET_LINK_LIBRARIES( myProject ${OpenCV_LIBS} )