#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.csdn.net/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