mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.5 KiB
54 lines
1.5 KiB
/** |
|
@file videocapture_basic.cpp |
|
@brief A very basic sample for using VideoCapture and VideoWriter |
|
@author PkLab.net |
|
@date Aug 24, 2016 |
|
*/ |
|
|
|
#include <opencv2/core.hpp> |
|
#include <opencv2/videoio.hpp> |
|
#include <opencv2/highgui.hpp> |
|
#include <iostream> |
|
#include <stdio.h> |
|
|
|
using namespace cv; |
|
using namespace std; |
|
|
|
int main(int, char**) |
|
{ |
|
Mat frame; |
|
//--- INITIALIZE VIDEOCAPTURE |
|
VideoCapture cap; |
|
// open the default camera using default API |
|
cap.open(0); |
|
// OR advance usage: select any API backend |
|
int deviceID = 0; // 0 = open default camera |
|
int apiID = cv::CAP_ANY; // 0 = autodetect default API |
|
// open selected camera using selected API |
|
cap.open(deviceID + apiID); |
|
// check if we succeeded |
|
if (!cap.isOpened()) { |
|
cerr << "ERROR! Unable to open camera\n"; |
|
return -1; |
|
} |
|
|
|
//--- GRAB AND WRITE LOOP |
|
cout << "Start grabbing" << endl |
|
<< "Press any key to terminate" << endl; |
|
for (;;) |
|
{ |
|
// wait for a new frame from camera and store it into 'frame' |
|
cap.read(frame); |
|
// check if we succeeded |
|
if (frame.empty()) { |
|
cerr << "ERROR! blank frame grabbed\n"; |
|
break; |
|
} |
|
// show live and wait for a key with timeout long enough to show images |
|
imshow("Live", frame); |
|
if (waitKey(5) >= 0) |
|
break; |
|
} |
|
// the camera will be deinitialized automatically in VideoCapture destructor |
|
return 0; |
|
}
|
|
|