python OpenCV 按(帧数/时间)间隔截取视频帧
帧率(FPS):每秒钟播放的帧数
1、如果你想直接通过帧数间隔截取视频帧,那直接使用可以使用下面的代码:
import cv2cap = cv2.VideoCapture("./query_video/test_video_0.mp4")
c = 1
frameRate = 100 # 帧数截取间隔(每隔100帧截取一帧)while(True):ret, frame = cap.read()if ret:if(c % frameRate == 0):print("开始截取视频第:" + str(c) + " 帧")# 这里就可以做一些操作了:显示截取的帧图片、保存截取帧到本地cv2.imwrite("./capture_image/" + str(c) + '.jpg', frame) # 这里是将截取的图像保存在本地c += 1cv2.waitKey(0)else:print("所有帧都已经保存完成")break
cap.release()
2、如果你想通过时间间隔截取视频帧,可以做一个时间到帧数的变换:
假如你想每隔10秒截取一帧,那么就相当于你要每隔( FPS * 10 )帧截取一帧图像!
因此,首先你需要知道你的视频的帧率(FPS)是多少:通过 openCV 获取一下即可:
cap = cv2.VideoCapture("./query_video/test_video_0.mp4")
FPS = cap.get(5) # 这个是获取视频帧率
最后将两段代码结合起来就可以根据时间间隔来截取视频帧了:
import cv2
cap = cv2.VideoCapture("./query_video/test_video_0.mp4")
c = 1
timeRate = 10 # 截取视频帧的时间间隔(这里是每隔10秒截取一帧)while(True):ret, frame = cap.read()FPS = cap.get(5)if ret:frameRate = int(FPS) * timeRate # 因为cap.get(5)获取的帧数不是整数,所以需要取整一下(向下取整用int,四舍五入用round,向上取整需要用math模块的ceil()方法)if(c % frameRate == 0):print("开始截取视频第:" + str(c) + " 帧")# 这里就可以做一些操作了:显示截取的帧图片、保存截取帧到本地cv2.imwrite("./capture_image/" + str(c) + '.jpg', frame) # 这里是将截取的图像保存在本地c += 1cv2.waitKey(0)else:print("所有帧都已经保存完成")break
cap.release()
python OpenCV 按(帧数/时间)间隔截取视频帧相关推荐
- python按时间截取视频,python使用opencv按一定间隔截取视频帧
python如何用opencv把一个视频按每10秒一小段切下来一个人的记忆就是一座城市,时间腐蚀着一切建筑,把高楼和道路一切沙化.如果你不往前走,就会被沙子掩埋.沙城就是一个人的记忆. 视频共计30秒 ...
- 视频抽帧并存图 python_使用Python实现跳帧截取视频帧
本文实例为大家分享了Python跳帧截取视频帧的具体代码,供大家参考,具体内容如下 可以自由设定时长来截取视频,经实测效果理想.期间遇到的一个麻烦是我的视频文件在D:盘,在原视频D盘目录上不能保存截取 ...
- 制作视频数据集(一):截取视频帧
** 制作视频数据集(一):截取视频帧 ** 1.smart player截取视频帧 直接下载smart player截取即可,我是觉得这个软件截取更简单一些,但我下载之后截取页面显示不了文件,搞不了 ...
- python opencv按照一定间隔保存视频帧
python opencv按照一定间隔保存视频帧 文章目录: 一.获取视频流的相关参数 二.设置间隔保存视频帧 想实现opencv读取视频帧,按照一定的时间间隔然后保存图片下来,因为所有的帧都保存下来 ...
- python快速检测视频跳过帧_使用Python实现跳帧截取视频帧
本文实例为大家分享了Python跳帧截取视频帧的具体代码,供大家参考,具体内容如下 可以自由设定时长来截取视频,经实测效果理想.期间遇到的一个麻烦是我的视频文件在D:盘,在原视频D盘目录上不能保存截取 ...
- python获取视频帧的时间_Python提取视频中图片的示例(按帧、按秒)
一.按帧提取 #coding=utf-8 import os import cv2 def save_img(): #提取视频中图片 按照每帧提取 video_path = r'D:\\test\\' ...
- 【OpenCV】获得视频的帧数、FPS以及按帧数将图片保存到本地
文章目录 视频操作 获得视频的帧数 获得视频的FPS 按帧数将图片保存到本地 视频操作 获得视频的帧数 import os import cv2video_cap = cv2.VideoCapture ...
- Python+Opencv图像处理新手入门教程(四):视频内容的读取与导出
一步一步来吧 上一节: Python+Opencv图像处理新手入门教程(三):阈值与二值化 1.Intro 今天这节我们主要看怎么利用opencv读取并处理视频中的内容. 2.VideoCapture ...
- 【Python-opencv3.4】视频基本操作(帧率,总视频帧数、从第N帧开始播放、播放进度显示、按键控制视频)
一.视频基本操作: 1.读取视频帧率.分辨率.读取视频总帧数.起始播放帧数 2.使用键盘控制视频 3.显示视频播放进度 二.基本操作对应代码 [完整代码]提取码:0vvb 1.读取视频帧率.分辨率.读 ...
最新文章
- 服务器对搜索引擎有哪些影响,实录:网站换服务器后对搜索引擎的影响
- 计算机组成原理_在线作业_2,计算机组成原理_在线作业_2讲述.docx
- 创新创业计划书_创践——大学生创新创业实务 ——如何撰写一份优秀的商业计划书...
- Feign-2覆写Feign的默认配置
- 赢得黑客马拉松的 9 种方式
- eclipse adt开发android ndk没有NDK选项问题的解决方案
- elk服务重启_ELK开机启动 service文件内容
- 把矩阵变为0,1矩阵
- ai画面怎么调大小_Adobe Illustrator(Ai)里怎么改变图像大小,快捷键是什么?
- 升级sp1后文档无法编辑
- css实现单色或图片背景透明,而文字不透明的方法
- RFID 中间件规范 -- ALE 介绍
- 教你一招轻松压缩MP4视频到最小
- cs224n 2019 Lecture 9: Practical Tips for Final Projects
- matlab矩阵及其基本运算—特征值分解和奇异值分解
- 无法调用自己电脑的gpu,即torch.cuda.is_available()返回false
- 【ASML】EUV光刻技术PPT
- 游戏3D美术设计师是什么?
- 5G时代金融服务如何升级?网易云信助力银行数字化建设
- 路由器的WAN口和LAN口、以及路由器和交换机的对比