Ubuntu中的OpenCV不显示窗口

Posted

技术标签:

【中文标题】Ubuntu中的OpenCV不显示窗口【英文标题】:OpenCV in Ubuntu does not show window 【发布时间】:2014-04-08 12:19:59 【问题描述】:

我安装了一个全新的 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 中运行完美。

【问题讨论】:

你没有使用c++ opencvAPI,让你的生活更轻松,使用c++函数 【参考方案1】:

只需在后续循环的执行之间添加小等待。为此目的使用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;

【讨论】:

THX。 cv::waitKey 似乎也是一种 MessagePump。我在代码中的任何位置都找到了与 cvStartWindowThread 类似的解决方案。但我认为你的解决方案更好。

以上是关于Ubuntu中的OpenCV不显示窗口的主要内容,如果未能解决你的问题,请参考以下文章

linux不使用opencv显示图形

opencv显示窗口有显示xy和rgb

Ubuntu中Qt+opencv图像显示

虚拟机安装ubuntu窗口自适应问题以及软件窗口显示不全解决方法

opencv 如何显示汉字

OpenCV下实现单窗口显示多幅图像的C++源码