Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "opencv2/opencv.hpp"
- #include <string>
- #include <iostream>
- using namespace std;
- int main (int argc, char *argv[])
- {
- // Открывается устройство захвата изображения (видеокамера)
- cv::VideoCapture cap(0); // open the default camera
- if(!cap.isOpened()) // check if we succeeded
- return -1;
- // Файл для сохранения видео
- // cv::Size SizeOfFrame = cv::Size( 800, 600);
- // cv::VideoWriter videoWriter("Result.wmv", CV_FOURCC('W', 'M', 'V', '2'), 30, SizeOfFrame, true);
- // Из потока берется один первый кадр для определения параметров сохраняемого видео
- cv::Mat src;
- cap >> src;
- if (src.empty()) {
- cerr << "ERROR! blank frame grabbed\n";
- return -1;
- }
- cv::Size sizeOfFrame=src.size();
- cout << "Capture W: " << sizeOfFrame.width << " H: " << sizeOfFrame.height;
- bool isColor = (src.type() == CV_8UC3);
- cv::VideoWriter videoWriter;
- // int codec = CV_FOURCC('M', 'J', 'P', 'G'); // select desired codec (must be available at runtime)
- int codec = CV_FOURCC('X', 'V', 'I', 'D'); // select desired codec (must be available at runtime)
- double fps = 20.0; // framerate of the created video stream
- std::string filename = "./live.avi"; // name of the output video file
- videoWriter.open(filename, codec, fps, sizeOfFrame, isColor);
- if (!videoWriter.isOpened()) {
- cerr << "Could not open the output video file for write\n";
- return -1;
- }
- cv::Mat edges;
- cv::namedWindow("edges",1);
- for(;;)
- {
- // Обработка картинки и вывод на экран
- cv::Mat frame;
- cap >> frame; // get a new frame from camera
- cv::cvtColor(frame, edges, CV_BGR2GRAY);
- cv::GaussianBlur(edges, edges, cv::Size(7,7), 1.5, 1.5);
- cv::Canny(edges, edges, 0, 30, 3);
- cv::imshow("edges", edges);
- // Сохранение кадра в файл
- videoWriter.write(edges);
- if(cv::waitKey(30) >= 0)
- break;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement