Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement