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不显示窗口的主要内容,如果未能解决你的问题,请参考以下文章