Python OpenCV对本地视频文件进行分帧保存的实例
作者:等一杯咖啡 时间:2021-09-15 23:03:18
如下所示:
# coding=utf-8
import os
import cv2
videos_src_path = "/home/wgp/视频/"
video_formats = [".MP4", ".MOV"]
frames_save_path = "/home/wgp/视频/"
width = 320
height = 240
time_interval = 50
def video2frame(video_src_path, formats, frame_save_path, frame_width, frame_height, interval):
"""
将视频按固定间隔读取写入图片
:param video_src_path: 视频存放路径
:param formats:包含的所有视频格式
:param frame_save_path:保存路径
:param frame_width:保存帧宽
:param frame_height:保存帧高
:param interval:保存帧间隔
:return:帧图片
"""
videos = os.listdir(video_src_path)
def filter_format(x, all_formats):
if x[-4:] in all_formats:
return True
else:
return False
videos = filter(lambda x: filter_format(x, formats), videos)
for each_video in videos:
print "正在读取视频:", each_video
each_video_name = each_video[:-4]
os.mkdir(frame_save_path + each_video_name)
each_video_save_full_path = os.path.join(frame_save_path, each_video_name) + "/"
each_video_full_path = os.path.join(video_src_path, each_video)
cap = cv2.VideoCapture(each_video_full_path)
frame_index = 0
frame_count = 0
if cap.isOpened():
success = True
else:
success = False
print("读取失败!")
while(success):
success, frame = cap.read()
print "---> 正在读取第%d帧:" % frame_index, success
if frame_index % interval == 0:
resize_frame = cv2.resize(frame, (frame_width, frame_height), interpolation=cv2.INTER_AREA)
# cv2.imwrite(each_video_save_full_path + each_video_name + "_%d.jpg" % frame_index, resize_frame)
cv2.imwrite(each_video_save_full_path + "%d.jpg" % frame_count, resize_frame)
frame_count += 1
frame_index += 1
cap.release()
if __name__ == '__main__':
video2frame(videos_src_path, video_formats, frames_save_path, width, height, time_interval)
来源:https://blog.csdn.net/bskfnvjtlyzmv867/article/details/79970146
标签:Python,OpenCV,视频,分帧
0
投稿
猜你喜欢
SQL Server SA权限最新入侵方法
2009-03-25 16:56:00
如何优化JavaScript脚本的性能
2008-02-19 21:47:00
Python经典案例之图像漫水填充分割详解
2021-08-25 11:41:14
利用Python实现学生信息管理系统的完整实例
2022-03-12 10:35:03
Python中使用Inotify监控文件实例
2021-03-03 14:17:05
golang goquery selector选择器使用示例大全
2023-10-14 15:40:58
XMLHttpRequest的浏览器兼容代码写法
2008-09-02 10:46:00
PHP判断是否微信访问的方法示例
2023-07-05 03:21:36
python线程优先级队列知识点总结
2022-01-04 21:25:46
Python 查看list中是否含有某元素的方法
2023-07-29 21:46:08
好用的Python编辑器WingIDE的使用经验总结
2022-01-15 06:23:10
快速升级MySQL系统表
2009-01-23 12:35:00
关于Python中进度条的六个实用技巧分享
2023-07-03 09:58:39
python处理xml文件操作详解
2021-11-10 10:31:24
Django Rest framework解析器和渲染器详解
2021-06-30 20:46:25
使用Filter实现信息的二次检索
2007-10-08 19:19:00
ASP脚本循环语句
2009-02-19 13:34:00
javascript自执行函数之伪命名空间封装法
2023-08-12 20:30:09
python使用matplotlib模块绘制多条折线图、散点图
2021-07-28 06:41:20
Python学习笔记之open()函数打开文件路径报错问题
2021-10-05 23:25:34