OpenCV2从摄像头获取帧并写入视频文件的方法

时间:2021-05-22

一段基于OpenCV2的代码。

作用是从摄像头获取帧并将帧写入指定的视频文件中。

需要注意的是,视频文件所在的路径需要存在,例如D:/images/1.avi。images这个目录需要存在。调用VideoWrite类对象的成员函数open时,编解码方式参数设置为-1,代码运行时会弹出对话框,手动选择编解码方式。

#include<opencv2\highgui\highgui.hpp>#include<opencv2\imgproc\imgproc.hpp>#include<opencv2\core\core.hpp>int main(){ //打开摄像头 cv::VideoCapture captrue(0); //视频写入对象 cv::VideoWriter write; //写入视频文件名 std::string outFlie = "D:/1.avi"; //获得帧的宽高 int w = static_cast<int>(captrue.get(CV_CAP_PROP_FRAME_WIDTH)); int h = static_cast<int>(captrue.get(CV_CAP_PROP_FRAME_HEIGHT)); cv::Size S(w, h); //获得帧率 double r = captrue.get(CV_CAP_PROP_FPS); //打开视频文件,准备写入 write.open(outFlie, -1, r, S, true); //打开失败 if (!captrue.isOpened()) { return 1; } bool stop = false; cv::Mat frame; //循环 while (!stop) { //读取帧 if (!captrue.read(frame)) break; cv::imshow("Video", frame); //写入文件 write.write(frame); if (cv::waitKey(10) > 0) { stop = true; } } //释放对象 captrue.release(); write.release();}

以上这篇OpenCV2从摄像头获取帧并写入视频文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章