一段基于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从摄像头获取帧并写入视频文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com
暂无“OpenCV2从摄像头获取帧并写入视频文件的方法”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。