前言:仅个人小记。 以下只是两个基本操作,基于opencv提供的两个主要的视频操控类VideoCapture和VideoWriter来实现录制视频这个简单功能。在很多应用中,录制视频可以作为基础功能,故简要记录。
#include <iostream>
#include <opencv2/highgui.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/videoio.hpp>
using namespace cv;
using namespace std;
int main()
{
VideoCapture cap;
VideoWriter outputVideo;
Mat frame;
cap.open(1);// 打开1号摄像头
outputVideo.open(String("f:/temp.mp4"), VideoWriter::fourcc('M', 'J', 'P', 'G'), 4.0, Size(640, 480));// 配置输出视频文件
while (1) {
cap >> frame;
outputVideo.write(frame);// 将该帧写入视频文件
imshow("Recording...", frame);// 展示图片
if (waitKey(250) == ' ') break; // 等待250ms,期间如果有按下空格,则执行break
}
destroyWindow("Recording...");// 在释放cap之前,要销毁所有的显示图像窗口
cap.release();
outputVideo.release();
return 0;
}