#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不支持這種方式,雖然運行代碼后能夠找到攝像頭,但是始終無法正常顯示圖像,后來換了一個攝像頭就完全可以正常顯示了。不知道有哪位大大給解釋下
