网络编程
位置:首页>> 网络编程>> 网络编程>> OpenCV2从摄像头获取帧并写入视频文件的方法

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

作者:林多  发布时间:2022-04-10 07:15:22 

标签:OpenCV2,摄像头,视频

一段基于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();
}

来源:https://blog.csdn.net/zxc024000/article/details/51438000

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com