在许多应用的需求中,希望将输入,或捕获图像记录到输出视频流中,并保存成一个完整的视频,OpenCV提供了一种简单的方法。正如【opencv四】利用opencv读取显示视频和【opencv七】利用opencv调用电脑摄像头中用到的可以从视频流中捕获到一个一个的帧,并将这些帧逐一显示。我们也可以创建一个写入功能,使得这一个个的帧能够逐一被放入到视频中。在opencv中cv::VideoWriter类就可以实现这个功能。
下面程序段的功能为:调整输入视频的播放速度,并将新速度的视频保存为.avi文件。主要操纵的就是一个参数:帧率(fps)。
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;
int main()
{
String out_path = "H:\\vs2017\\opencv_learning\\ConsoleApplication1\\out1.avi";
namedWindow("Example6", WINDOW_AUTOSIZE);
namedWindow("Log_Polar", WINDOW_AUTOSIZE);
VideoCapture cap;
cap.open("H:\\vs2017\\opencv_learning\\ConsoleApplication1\\video1.mp4");
double fps = cap.get(CAP_PROP_FPS)*2;
Size size((int)cap.get(CAP_PROP_FRAME_WIDTH), (