5.【opencv写入录制视频】

(一)、什么是视频保存?

本次课程讲:如果将我们通过电脑摄像头录取的视频进行代码保存到我们的文件中去,以及判断我们加载的图像是否被成功录入.

(二)、知道什么APL?

(1)、VideoWriter 类:可以将多个视频帧保存为文件.

1.1参数一为:输出文件(路径);
"E:\视频\out.mp4"
1.2参数二为:多媒体文件格式(int型);

JPMG(.mp4)、XVID(.val)

int coder = VideoWriter::fourcc('J','P','M','G');
1.3参数三为:视频帧度 (int型);25/24
1.4参数四为:清晰度(Size型(wideth,height));

获取本机电脑的清晰度:

int width = cap.get(CAP_PROP_FRAME_WIDTH);
int height = cap.get(CAP_PROP_FRAME_HEIGHT);
1.5参数五为:色彩 (bool型)(true为真。0为假);

1.6总结:

VideoWriter vw("E:\视频\out.mp4",coder,25.0,Size(width, height),true);

(2)、write方法、写入文件(把frame写入文件中去)、并进行了压缩编码.

Videowrite的对象.write(图像);

vw.write(fram1);

(3)、release在关闭文件的时候,并强制把缓存区中的数据强制输出到磁盘中.

Videowrite的对象.release()

(三)、文章思路是什么?

首先我们要设置opencv的头文件、然后进行窗口设置,再然后建立VideoCapture对象获取我们的摄像机,然后设置VideoWriter保存文件对象、进行构造函数填充、然后进行while循环判断是否打开摄影设备成功,如果成功救读入数据帧,然后判断是否读入数据帧,如果读入数据帧,那么救开始展示图像,并进行写入操作,然后设置键盘等待时间为25,进行录制,最后
关闭摄影设备、关闭读入设备.

(四)、实战项目:

1.代码展现:

#include <iostream>
#include <string.h>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
	Mat fram1;	
	namedWindow("视频", WINDOW_AUTOSIZE);
	VideoCapture  cap(0);
	int coder = VideoWriter::fourcc('J','P','M','G');
	int width = cap.get(CAP_PROP_FRAME_WIDTH);
	int height = cap.get(CAP_PROP_FRAME_HEIGHT);
	VideoWriter vw("E:\视频\out.mp4",coder,25.0,Size(width, height),true);         //
	while (cap.isOpened())           //假如说被打开就为真
	{
		//cap >> fram1;
		
		cap.read(fram1);  
		if (fram1.empty())break;
		imshow("视频", fram1);
		vw.write(fram1);
		if (waitKey(25) == 27)break;
	}
	cout << "已经退出程序!" << endl;
	cap.release();
	vw.release();
	return 0;

}

2.效果展现

代码展现

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>