Ubuntu中的OpenCV不显示窗口

时间:2014-04-08 12:19:59

标签: c++ linux opencv ubuntu eclipse-cdt

我安装了一个新的Ubuntu。通过Shop下载Eclipse,通过Eclipse(Kepler)中的插件管理器安装CDT插件。我用Shop来下载OpenCV开发包。在eclipse中添加路径后,我写了一个简短的程序。

#include <iostream>
#include "opencv2/opencv.hpp"

int main(int argc, const char * argv[])
{
    cvNamedWindow( "result", CV_WINDOW_AUTOSIZE );

    CvCapture* capture = cvCaptureFromCAM(-1);

    IplImage *newImg;

    while(true)
    {
        newImg = cvQueryFrame( capture );
        if( newImg==0 )
            break;
        cvShowImage( "result", newImg );
    }
    return 0;
}

程序编译,调试器在newImg中显示一些值。但是没有窗口出现并显示结果。相机LED灯亮,循环一步似乎完美无缺。仅缺少输出窗口。相同的程序在OS X上的XCode中运行完美。

1 个答案:

答案 0 :(得分:3)

在执行后续循环之间添加小的等待。为此目的使用cv::waitKey

#include <iostream>
#include "opencv2/opencv.hpp"

int main(int argc, const char * argv[])
{
    cvNamedWindow( "result", CV_WINDOW_AUTOSIZE );

    CvCapture* capture = cvCaptureFromCAM(-1);

    IplImage *newImg;

    while(true)
    {
        newImg = cvQueryFrame( capture );
        if( newImg==0 )
            break;
        cvShowImage( "result", newImg );
        cv::waitKey(100); //Wait of 100 ms
    }
    return 0;
}