SHARE
TWEET

Untitled

a guest Nov 21st, 2017 92 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "opencv2/opencv.hpp"
  2. #include <string>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int main (int argc, char *argv[])
  8. {
  9.     // Открывается устройство захвата изображения (видеокамера)
  10.     cv::VideoCapture cap(0); // open the default camera
  11.     if(!cap.isOpened())  // check if we succeeded
  12.         return -1;
  13.  
  14.     // Файл для сохранения видео
  15.     // cv::Size SizeOfFrame = cv::Size( 800, 600);
  16.     // cv::VideoWriter videoWriter("Result.wmv", CV_FOURCC('W', 'M', 'V', '2'), 30, SizeOfFrame, true);
  17.    
  18.     // Из потока берется один первый кадр для определения параметров сохраняемого видео
  19.     cv::Mat src;
  20.     cap >> src;
  21.     if (src.empty()) {
  22.         cerr << "ERROR! blank frame grabbed\n";
  23.         return -1;
  24.     }
  25.     cv::Size sizeOfFrame=src.size();
  26.     cout << "Capture W: " << sizeOfFrame.width << " H: " << sizeOfFrame.height;
  27.     bool isColor = (src.type() == CV_8UC3);
  28.  
  29.     cv::VideoWriter videoWriter;
  30.     // int codec = CV_FOURCC('M', 'J', 'P', 'G');  // select desired codec (must be available at runtime)
  31.     int codec = CV_FOURCC('X', 'V', 'I', 'D');  // select desired codec (must be available at runtime)
  32.     double fps = 20.0;                          // framerate of the created video stream
  33.     std::string filename = "./live.avi";             // name of the output video file
  34.     videoWriter.open(filename, codec, fps, sizeOfFrame, isColor);
  35.     if (!videoWriter.isOpened()) {
  36.         cerr << "Could not open the output video file for write\n";
  37.         return -1;
  38.     }    
  39.    
  40.     cv::Mat edges;
  41.     cv::namedWindow("edges",1);
  42.     for(;;)
  43.     {
  44.         // Обработка картинки и вывод на экран
  45.         cv::Mat frame;
  46.         cap >> frame; // get a new frame from camera
  47.         cv::cvtColor(frame, edges, CV_BGR2GRAY);
  48.         cv::GaussianBlur(edges, edges, cv::Size(7,7), 1.5, 1.5);
  49.         cv::Canny(edges, edges, 0, 30, 3);
  50.         cv::imshow("edges", edges);
  51.        
  52.         // Сохранение кадра в файл
  53.         videoWriter.write(edges);
  54.        
  55.         if(cv::waitKey(30) >= 0)
  56.             break;
  57.     }
  58.    
  59.   return 0;
  60. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top