Computer >> Máy Tính >  >> Lập trình >> C ++

Làm cách nào để lưu trữ video trên máy tính của bạn trong OpenCV bằng C ++?

Khi muốn lưu trữ video, chúng ta phải xác định vị trí muốn lưu trữ. Sau đó, chúng ta cần chỉ định FourCC, FourCC là viết tắt của 'Mã bốn ký tự'. Nó là một chuỗi các ký tự 4 byte xác định các định dạng dữ liệu. Chúng ta cũng cần khai báo FPS để lưu trữ video và kích thước khung hình cũng cần thiết cho quá trình lưu trữ này. Chương trình sau lấy luồng video thời gian thực từ máy ảnh mặc định và lưu trữ video trong thư mục C.

Chương trình sau đây trình bày cách lưu trữ video trong máy tính của bạn trong OpenCV bằng C ++.

Ví dụ

#include<opencv2/opencv.hpp>//OpenCV header to use VideoCapture class and VideoWriter//
#include<iostream>
using namespace std;
using namespace cv;
int main() {
   Mat myImage;//Declaring a matrix to store the frames//
   VideoCapture cap(0);//Taking an object of VideoCapture Class to capture video from default camera//
   namedWindow("Video Player");//Declaring the video to show the video//
   if(!cap.isOpened()){ //This section prompt an error message if no video stream is found//
      cout << "Failed to access the camera" << endl;
      system("pause");
      return-1;
   }
   int frame_width = cap.get(CAP_PROP_FRAME_WIDTH);//Getting the frame height//
   int frame_height = cap.get(CAP_PROP_FRAME_HEIGHT);//Getting the frame width//
   VideoWriter video("video1.mp4",10,17,Size(frame_width, frame_height));//Declaring an object of VideoWriter class//
   while (true){ //Taking an everlasting loop to show the video//
      cap >> myImage;
      if (myImage.empty()){ //Breaking the loop if no video frame is detected//
         break;
      }
      video.write(myImage);//Write the video//
      imshow("Video Player", myImage);//Showing the video//
      char c= (char)waitKey(25);
      if(c==27){
         break;
      }
   }
   cap.release();//Releasing the buffer memory//
   video.release();
   return 0;
}

Chương trình này sẽ lưu trữ video trong thư mục đã xác định dưới dạng tên đã xác định ở định dạng đã xác định.