python根据视频帧按秒从视频中提取图片
看到有按照帧提取视频中的图片的例子,但是个人只需用到每秒的图片。
以下是用到的代码:
import os
import cv2def save_img2(): # 提取视频中图片 按照每秒提取 间隔是视频帧率video_path = r'C:/Users/Louise喵/Desktop/video1/' # 视频所在的路径f_save_path = 'D:/image/' # 保存图片的上级目录videos = os.listdir(video_path) # 返回指定路径下的文件和文件夹列表。for video_name in videos: # 依次读取视频文件file_name = video_name.split('.')[0] # 拆分视频文件名称 ,剔除后缀folder_name = f_save_path + file_name # 保存图片的上级目录+对应每条视频名称 构成新的目录存放每个视频的os.makedirs(folder_name, exist_ok=True) # 创建存放视频的对应目录vc = cv2.VideoCapture(video_path + video_name) # 读入视频文件fps = vc.get(cv2.CAP_PROP_FPS) # 获取帧率print(fps) # 帧率可能不是整数 需要取整rval = vc.isOpened() # 判断视频是否打开 返回True或Falsec = 1while rval: # 循环读取视频帧rval, frame = vc.read() # videoCapture.read() 函数,第一个返回值为是否成功获取视频帧,第二个返回值为返回的视频帧:pic_path = folder_name + '/'if rval:if (c % round(fps) == 0): # 每隔fps帧进行存储操作 ,可自行指定间隔cv2.imwrite(pic_path + 'video_' + str(round(c/fps)) + '.png', frame) #存储为图像的命名 video_数字(第几个文件).pngprint('video_' + str(round(c/fps)) + '.png')cv2.waitKey(1) # waitKey()--这个函数是在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下键,则接续等待(循环)c = c + 1else:breakvc.release()print('save_success' + folder_name)save_img2()
有几点需要注意:
- 提取出的图片位置不要放在C盘,放在C盘会显示文件夹为空,涉及到权限问题没有将图片存入文件夹中。
- 逻辑上是读取视频帧率,然后根据FPS来指定间隔进行存储图片,从而达到每秒存储一次图片。
- 以上代码可以批量读取多个视频,前提是在同一个路径下。一个视频对应的图集均以视频名存于指定位置。
- 视频存储的路径下最好只有需要处理的视频,以防报错。
以下是一个读取一个视频后的显示,最后显示成功存储在指定路径下。
文件夹显示如下:
提取成功。
python根据视频帧按秒从视频中提取图片相关推荐
- FFmpeg命令(三)、 从视频中提取图片
FFmpeg 从视频中提取图片 ffmpeg -i test.mp4 -r 30 image-%3d.jpg ffmpeg -i test.mp4 -r 30 -t 4 image-%3d.jpg f ...
- 从视频中提取图片(截取ppt)
从视频中提取图片 大聪明2.0上线 本文将介绍如何快速从网课视频中提取ppt Step1 从视频中提取图片 使用win自带的"电影与电视" 点击这个小铅笔,选择"保存视频 ...
- python - 截取指定帧数间隔的视频,并保存图片到指定位置
前提:安装好python ,配置好opencv-python,不然import cv2会报错. 代码: (直接粘贴代码会出现排版错误,所以贴图了,代码也不多) 截取图片结果如下: 注意: 1.代码段前 ...
- matlab降低视频帧数,如何更改视频的帧速率
你开始改变. 调整. 修复或帧速率转换之前,您需要注意的一点就是实际的视频帧显示的速度很大程度上取决于您的计算机的硬件能力.即使它是共同的帧速率增加,提高视频质量,这只会工作到某一个点.另外,还有一些 ...
- Python批量爬取微信公众号文章中的图片重建PowerPoint文件
开学第一课:一定不要这样问老师Python问题 董付国老师Python系列教材推荐与选用参考 3000道Python习题免费在线练习 ============= 版权声明:由于公众号后台规则问题,本文 ...
- 用Python写一个网络爬虫爬取网页中的图片
写一个爬虫爬取百度贴吧中一个帖子图片 网址:壁纸 用谷歌浏览器的开发工具检查网页,可以发现其每一张图片都有如下格式 <img class="BDE_Image" src=&q ...
- Java图片,视频上传,截取视频帧以及文件下载和视频IO获取
public class FileUtil { @Value("${img.url}") public String imgUrl; @Value("${video.ur ...
- matlab播放 视频帧,如何把连续视频帧转为视频的matlab代码 | 学步园
原先用opencv做这个工作,不过总是会出现一些意想不到的问题 今天网速搜了搜,发现matlab有现车的函数,分析给大家: function CreatAviFromPic(picfrom,picen ...
- 前端js实现从视频中提取图片帧
使用canvas进行视频截图. <div class="dashboard-container"><div style="display: flex&q ...
最新文章
- 信息系统项目管理师-知识管理知识点
- MAT之PLS:利用PLS(两个主成分的贡献率就可达100%)提高测试集辛烷值含量预测准确度并《测试集辛烷值含量预测结果对比》
- mac之brew安装卸载使用
- RelationTrack解读
- this.byId(SupplierForm).bindElement in SAP UI5
- codeforces gym-101745 D-Stamp Stamp Stamp动态规划
- 在IDEA中设置Java的堆大小
- spss聚类分析_【SPSS数据分析】SPSS聚类分析的软件操作与结果解读 ——【杏花开生物医药统计】...
- 最小标示法模板 poj1509
- 主线程 唤醒_JAVA多线程--线程阻塞与唤醒
- Verilog语言生成4位伪随机码
- Mac教程——创建txt文件、设置新建txt的快捷键方法
- 初学者使用HTML简单做一个自我介绍
- 怎么用js代码画一棵树,附带下载链接
- android 设置启动画面,修改Android开机画面
- java实现日历打印
- 《Miss Talk》第07期:对话拓课云联合创始人兼CTO 王晓伟
- 机器人无限火力无限e符文_无限火力快乐玩法:无限击飞机器人
- 苹果搜索广告ASA“保姆级”开户教程来袭!拿来吧你!
- android hid 编程,Android Bluetooth HID完成详解,androidhid
热门文章
- 【计算机网络】读书笔记之《HTTP权威指南》
- 网站制作中 电脑网站与手机网站有哪些区别?
- networkx 有向图强连通_有向图的强连通分支
- vuejs知乎_GitHub - xrr2016/zhihu-daily: 知乎日报(Vuejs)
- wilf tree java_伴读 | 牛津树【2-9】New Trees
- unity3d培训_001
- 理解windows消息通告消息和命令消息!!!
- 半导体器件物理【14】非平衡过剩载流子 —— 非平衡少数载流子浓度 、附加电导、扩散电流、漂移电流、总电流
- Python的简单数据类型案例
- jQuery的简单了解和学习(1) jquery简介+语法+选择器+事件