小编给大家分享一下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(); }
看完了这篇文章,相信你对“OpenCV2从摄像头获取帧并写入视频文件的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。