Python提取视频中图片的示例(按帧、按秒)


Posted in Python onOctober 22, 2020

一、按帧提取

#coding=utf-8
import os
import cv2
 
def save_img():  #提取视频中图片 按照每帧提取
 video_path = r'D:\\test\\' #视频所在的路径
 f_save_path = 'D:\\aaa\\' #保存图片的上级目录
 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) #读入视频文件
 c=0   #计数 统计对应帧号
 rval=vc.isOpened() #判断视频是否打开 返回True或Flase
 
 while rval: #循环读取视频帧
  rval, frame = vc.read() #videoCapture.read() 函数,第一个返回值为是否成功获取视频帧,第二个返回值为返回的视频帧:
  pic_path = folder_name+'/'
  if rval:
  cv2.imwrite(pic_path + file_name + '_' + str(c) + '.jpg', frame) #存储为图像,保存名为 文件夹名_数字(第几个文件).jpg
  cv2.waitKey(1) #waitKey()--这个函数是在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下 键,则接续等待(循环)
  c = c + 1
  else:
  break
 vc.release()
 print('save_success'+folder_name)
 
save_img()

运行结果

Python提取视频中图片的示例(按帧、按秒)

二、按秒提取

#coding=utf-8
import os
from cv2 import cv2

def save_img2():  #提取视频中图片 按照每秒提取 间隔是视频帧率
 video_path = r'D:\\test\\' #视频所在的路径
 f_save_path = 'D:\\aaa\\' #保存图片的上级目录
 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或Flase
 c = 1
 while rval: # 循环读取视频帧
  rval, frame = vc.read() # videoCapture.read() 函数,第一个返回值为是否成功获取视频帧,第二个返回值为返回的视频帧:
  pic_path = folder_name + '/'
  if rval:
   
  if (c % round(fps) == 0): # 每隔fps帧进行存储操作 ,可自行指定间隔
   cv2.imwrite(pic_path + file_name + '_' + str(c) + '.jpg', frame) # 存储为图像,保存名为 文件夹名_数字(第几个文件).jpg
  cv2.waitKey(1) # waitKey()--这个函数是在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下 键,则接续等待(循环)
  c = c + 1
  else:
  break
 vc.release()
 print('save_success' + folder_name)
 
save_img2()

运行结果

Python提取视频中图片的示例(按帧、按秒)

以上就是Python提取视频中的帧图片的示例的详细内容,更多关于python 提取视频图片的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
RC4文件加密的python实现方法
Jun 30 Python
深入理解python中的select模块
Apr 23 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
Nov 14 Python
python调用系统ffmpeg实现视频截图、http发送
Mar 06 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
Jun 28 Python
在python中实现对list求和及求积
Nov 14 Python
使用python实现离散时间傅里叶变换的方法
Sep 02 Python
python性能测量工具cProfile使用解析
Sep 26 Python
如何基于pythonnet调用halcon脚本
Jan 20 Python
Python学习笔记之装饰器
Aug 06 Python
自动在Windows中运行Python脚本并定时触发功能实现
Sep 04 Python
关于python pygame游戏进行声音添加的技巧
Oct 24 Python
详解python模块pychartdir安装及导入问题
Oct 22 #Python
Python实现自动装机功能案例分析
Oct 22 #Python
Python reversed反转序列并生成可迭代对象
Oct 22 #Python
Python+OpenCV图像处理—— 色彩空间转换
Oct 22 #Python
Python类的继承super相关原理解析
Oct 22 #Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
Oct 22 #Python
Python基于内置函数type创建新类型
Oct 22 #Python
You might like
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
PHP禁止页面缓存的代码
2011/10/23 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
php-msf源码详解
2017/12/25 PHP
php实现微信支付之企业付款
2018/05/30 PHP
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
2016/12/16 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
JS判断时间段的实现代码
2017/06/14 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
JS实现的全排列组合算法示例
2017/10/09 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
详解JavaScript 为什么要有 Symbol 类型?
2019/04/03 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
python实现kNN算法
2017/12/20 Python
python远程邮件控制电脑升级版
2019/05/23 Python
python 实现按对象传值
2019/12/26 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
Python3如何判断三角形的类型
2020/04/12 Python
python使用smtplib模块发送邮件
2020/12/17 Python
ziaja齐叶雅官方海外旗舰店:来自波兰的天然护肤品牌
2017/01/02 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
财产保全担保书范文
2014/04/01 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
工作散漫检讨书
2014/09/16 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
网络研修心得体会
2016/01/08 职场文书
协议书格式模板
2016/03/24 职场文书
Java面试题冲刺第十五天--设计模式
2021/08/07 面试题