OpenCV如何获取视频的每一帧并保存为.jpg图片
发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,这篇文章给大家分享的是有关OpenCV如何获取视频的每一帧并保存为.jpg图片的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下#include#include #
千家信息网最后更新 2024年11月17日OpenCV如何获取视频的每一帧并保存为.jpg图片
这篇文章给大家分享的是有关OpenCV如何获取视频的每一帧并保存为.jpg图片的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
具体内容如下
#include#include #include #include using namespace std;using namespace cv;//获取视频中的人脸int main(){ //打开视频文件:其实就是建立一个VideoCapture结构 VideoCapture capture("1.mp4"); //检测是否正常打开:成功打开时,isOpened返回ture if (!capture.isOpened()) cout << "fail toopen!" << endl; //获取整个帧数 long totalFrameNumber = capture.get(CV_CAP_PROP_FRAME_COUNT); cout << "整个视频共" << totalFrameNumber << "帧" << endl; //设置开始帧() long frameToStart = 1; capture.set(CV_CAP_PROP_POS_FRAMES, frameToStart); cout << "从第" << frameToStart << "帧开始读" << endl; //设置结束帧 int frameToStop = 30; if (frameToStop < frameToStart) { cout << "结束帧小于开始帧,程序错误,即将退出!" << endl; return -1; } else { cout << "结束帧为:第" << frameToStop << "帧" << endl; } //获取帧率 double rate = capture.get(CV_CAP_PROP_FPS); cout << "帧率为:" << rate << endl; //定义一个用来控制读取视频循环结束的变量 bool stop = false; //承载每一帧的图像 Mat frame; //显示每一帧的窗口 namedWindow("Extractedframe"); //两帧间的间隔时间: //int delay = 1000/rate; double delay = 1000 / rate; //利用while循环读取帧 //currentFrame是在循环体中控制读取到指定的帧后循环结束的变量 long currentFrame = frameToStart; //滤波器的核 int kernel_size = 3; Mat kernel = Mat::ones(kernel_size, kernel_size, CV_32F) / (float)(kernel_size*kernel_size); while (!stop) { //读取下一帧 if (!capture.read(frame)) { cout << "读取视频失败" << endl; return -1; } cout << "正在读取第" << currentFrame << "帧" << endl; imshow("Extractedframe", frame); cout << "正在写第" << currentFrame << "帧" << endl; stringstream str; str << currentFrame << ".jpg"; cout << str.str() << endl; imwrite(str.str(), frame); //waitKey(intdelay=0)当delay≤ 0时会永远等待;当delay>0时会等待delay毫秒 //当时间结束前没有按键按下时,返回值为-1;否则返回按键 //int c = waitKey(delay); int c = waitKey(1000); //按下ESC或者到达指定的结束帧后退出读取视频 if ((char)c == 27 || currentFrame > frameToStop) { stop = true; } //按下按键后会停留在当前帧,等待下一次按键 if (c >= 0) { waitKey(0); } currentFrame++; } //关闭视频文件 capture.release(); waitKey(0); return 0;}
感谢各位的阅读!关于"OpenCV如何获取视频的每一帧并保存为.jpg图片"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
视频
按键
循环
内容
图片
变量
文件
时间
更多
正在
篇文章
控制
不错
实用
成功
人脸
图像
就是
循环体
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
hive数据库没有索引
数据库安全发展前景
两个数据库数据同步
交通安全数据库管理系统
青海频道网络安全
北京通信软件开发过程有哪些
财务管理数据库设计
心得体会之网络安全
贵州社区党性体检软件开发
吱信(上海)网络技术有限公司给我转账
需要用到云服务器的行业
重庆网络软件开发流程要求
学安卓软件开发怎么样
完美国际 忘记服务器
ado助手怎么生成数据库代码
选号软件开发
配置ubuntu服务器
重庆云服务器托管虚拟主机
数据库用户dbo的特点
云计算时代网络技术
网络安全分析范文
三级数据库和网络技术那个好
马章焘网络安全
快递代取软件开发文档
联通落地服务器是什么意思
联想服务器技术论坛
互联网软件开发业务流程
vpn 数据库
网络安全心得体会255个字
在线网络安全态势感知系统