#include "opencv2/highgui/highgui.hpp" #include <iostream> using namespace cv; using namespace std; int main(int argc, char* argv[]) { VideoCapture cap(0); // open the video camera no. 0 if (!cap.isOpened()) // if not success, exit program { cout << "Cannot open the video cam" << endl; return -1; } double dWidth = cap.get(CV_CAP_PROP_FRAME_WIDTH); //get the width of frames of the video double dHeight = cap.get(CV_CAP_PROP_FRAME_HEIGHT); //get the height of frames of the video cout << "Frame size : " << dWidth << " x " << dHeight << endl; namedWindow("MyVideo",CV_WINDOW_AUTOSIZE); //create a window called "MyVideo" while (1) { Mat frame; //bool bSuccess = cap.read(frame); // read a new frame from video // if (!bSuccess) //if not success, break loop //{ // cout << "Cannot read a frame from video stream" << endl; // break; //} cap>>frame; imshow("MyVideo", frame); //show the frame in "MyVideo" window if (waitKey(30) == 27) //wait for 'esc' key press for 30ms. If 'esc' key is pressed, break loop { cout << "esc key is pressed by user" << endl; break; } } return 0; }
另外注明下,本人曾经想用手机来充当摄像头,利用DroidCam软件,但是貌似Opencv不支持这种方式,虽然运行代码后能够找到摄像头,但是始终无法正常显示图像,后来换了一个摄像头就完全可以正常显示了。不知道有哪位大大给解释下