#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <string>
int main()
{
CvCapture* pCap = cvCreateCameraCapture( 1 );
IplImage *frame = NULL;
const std::string window_name ("Camera");
if (cvCreateCameraCapture == NULL)
{
return(0);
}
// cvNamedWindow("Camera",CV_WINDOW_FULLSCREEN);
cvNamedWindow( window_name.c_str(), CV_WINDOW_NORMAL );
cvSetWindowProperty( window_name.c_str(), CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN );
while ((frame = cvQueryFrame(pCap)) != 0 && cvWaitKey(20) != 27)
{
frame = cvQueryFrame(pCap);
cvShowImage("Camera", frame);
}
cvReleaseCapture(&pCap);
cvDestroyWindow("Camera");
return 0;
}
上面的代码 直接使用Win32的窗口系统,但是 测试结果并不能实现窗口的全屏。
差了一下opencv的wiki:http://opencv.itseez.com/modules/highgui/doc/qt_new_functions.html#setwindowproperty
为什么把cvSetWindowProperty这些函数放在了Qt New Functions目录下,难道这些函数只争对Qt窗口系统才有效?后来编译Qt窗口版本的sdk,(可以到我资源中下载:http://download.youkuaiyun.com/detail/dizuo/3583404),测试了一下Qt版的opencv sdk,下面的语句确实可以实现全屏:
cvNamedWindow( window_name.c_str(), CV_WINDOW_NORMAL );
cvSetWindowProperty( window_name.c_str(), CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN );
查了一下opencv2.3的bug list:
https://code.ros.org/trac/opencv/ticket/1114,文章大意是说cvNamedWindow中的两个宏定义的值应该互换。。。
系统环境Win7 + vs2008