21xrx.com
2025-03-27 19:15:20 Thursday
文章检索 我的文章 写文章
如何使用C++和OpenCV保存视频
2023-07-05 00:11:33 深夜i     --     --
C++ OpenCV 保存 视频 编程

C++和OpenCV是两个广泛应用于计算机视觉领域的工具。在许多计算机视觉应用程序中,保存视频是一个非常重要的任务。本文将介绍如何使用C++和OpenCV保存视频。

步骤1:安装OpenCV

首先需要在本地计算机上安装OpenCV。可以从官方网站中下载适合自己操作系统的版本。安装完成后,需要将OpenCV的头文件和库文件添加到C++ IDE中。

步骤2:编写代码

打开C++ IDE,创建一个新的C++源代码文件,并添加以下代码:

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
  // 视频文件的名称和视频的帧率
  string filename = "output.avi";
  double fps = 30.0;
  // 获取默认的摄像头输入
  VideoCapture cap(0);
  // 获取摄像头的宽度和高度
  int frame_width = cap.get(CAP_PROP_FRAME_WIDTH);
  int frame_height = cap.get(CAP_PROP_FRAME_HEIGHT);
  // 创建VideoWriter对象
  VideoWriter video(filename, VideoWriter::fourcc('M', 'J', 'P', 'G'), fps, Size(frame_width, frame_height), true);
  // 检查视频是否成功写入
  if (!video.isOpened())
    cout << "Error: Failed to open video file." << endl;
    return -1;
  
  // 循环读取视频帧并将其保存到文件中
  while (true) {
    Mat frame;
    bool success = cap.read(frame);
    // 检查是否成功读取帧
    if (!success)
      cout << "Error: Failed to read frame from camera." << endl;
      break;
    
    // 通过write方法将视频帧写入视频文件
    video.write(frame);
    // 显示视频帧
    imshow("Frame", frame);
    // 按'q'键退出循环
    if (waitKey(10) == 'q')
      break;
    
  }
  // 释放VideoCapture和VideoWriter对象
  cap.release();
  video.release();
  return 0;
}

步骤3:运行代码

保存代码并编译。然后运行代码,打开摄像头并开始录制视频。按下“q”键以停止录制。

步骤4:查看保存的视频

在C++代码的相同目录下,会生成名为“output.avi”的视频文件。

总结

本文简要介绍了如何使用C++和OpenCV保存视频。可以使用代码轻松地从摄像头获取视频帧并将其保存到文件中。需要使用此功能时,可以根据自己的具体情况进行修改和调整。

  
  

评论区