python提取视频帧并保存_python tools实现视频的每一帧提取并保存
preface
最近在做 video caption 相关,要处理大量视频。
method 1
方法 1 是最简单的,用 ffmpeg工具来完成。
具体的网上有很多这方面的资料,本人只是简单了解了一下如何使用。如下图,有一个名为 ffmpeg_test.avi的视频:
在当前目录打开终端,输入如下命令:
$ffmpeg -i ffmpeg_test.avi frames_%03d.jpg -hide_banner
以上我没有指定太多的参数,实际上有很多参数可以指定,如起止的时间,几秒钟取一帧等等。
输入即可获得每一帧。
method 2
下面就是可以用 cv2 模块中的 videocapture、videowriter 来提取了,具体代码如下:
#! encoding: utf-8
import os
import cv2
import cv
videos_src_path = '/home/ou-lc/chenxp/downloads/youtube/youtube_select'
videos_save_path = '/home/ou-lc/chenxp/downloads/youtube/youtube_frames'
videos = os.listdir(videos_src_path)
videos = filter(lambda x: x.endswith('avi'), videos)
for each_video in videos:
print each_video
# get the name of each video, and make the directory to save frames
each_video_name, _ = each_video.split('.')
os.mkdir(videos_save_path + '/' + each_video_name)
each_video_save_full_path = os.path.join(videos_save_path, each_video_name) + '/'
# get the full path of each video, which will open the video tp extract frames
each_video_full_path = os.path.join(videos_src_path, each_video)
cap = cv2.videocapture(each_video_full_path)
frame_count = 1
success = true
while(success):
success, frame = cap.read()
print 'read a new frame: ', success
params = []
params.append(cv.cv_imwrite_pxm_binary)
params.append(1)
cv2.imwrite(each_video_save_full_path + each_video_name + "_%d.ppm" % frame_count, frame, params)
frame_count = frame_count + 1
cap.release()
在最后,我将每一帧保存为 ppm 格式。因为我需要调用之前的 optical flow 论文中的 of 程序,来提取 optical flow image(光流图)。
保存时,根据 opencv 的 doc:opencv 2.4.9 cv2.imwrite,其参数的指定方式如上。一开始在这里跌了好几个跟头,因为不知道如何将参数正确的指定。
reference
http://stackoverflow.com/questions/33311153/python-extracting-and-saving-video-frames
http://stackoverflow.com/questions/12216333/opencv-imread-imwrite-increases-the-size-of-png
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
python提取视频帧并保存_python tools实现视频的每一帧提取并保存相关推荐
- python裁剪图片并保存_python – 如何从图像中剪切轮廓并将其保存到新文件中
大家好,这是我的第一个问题所以请保持温和.我有一个计算机视觉领域的项目,我是新的,我会很感激一些帮助.我有一个pcb的图像,我的(首先)任务是从背景中切断电路板并将其保存到新文件. 如果结果只是没有灰 ...
- python下载图片并保存_Python从URL获取图片、读取图片格式并保存到本地
前言 从网络上下载图片的时候,我们不一定能从URL中获取图片格式. 所以,从图片本身获取图片格式,是比较通用而且方便的方法了. 但是,PIL一般都是从文件读取图片数据,那么如何从requests.co ...
- python获取视频帧的时间_Python提取视频中图片的示例(按帧、按秒)
一.按帧提取 #coding=utf-8 import os import cv2 def save_img(): #提取视频中图片 按照每帧提取 video_path = r'D:\\test\\' ...
- python 视频处理技术_Python玩转视频处理(三):从视频中提取女神片段
在上一篇中实现了基于人脸识别提取人物片段的功能,但是在实践过程中发现,如果是一部电影,那么提取到的片段太多了.为了找女神的电影片段,还要在辣么多剪辑中苦苦手工筛选,这个不是一个优秀的程序员应该做的. ...
- python截取视频图像_python工具-将视频按帧截取图片(附代码)
描述:将一个视频流按帧数截取大量的图片 用途:ai的数据集制作,得到大量的图片,之后将其打标签 更改的地方 1.default--间隔的帧数 2.input/output--输入视频的路径.存放截 ...
- python编程教程第九讲_Python入门学习视频,最全面讲解视频无偿分享,这些基础知识你都懂了吗?...
2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...
- python发朋友圈源码_Python 带你一键生成朋友圈超火的九宫格短视频
1. 场景 如果你经常刷抖音和微信朋友圈,一定发现了最近九宫格短视频很火! 从朋友圈九宫格图片,到九宫格视频,相比传统的图片视频,前者似乎更有个性和逼格 除了传统的剪辑软件可以实现,是否有其他更加快 ...
- python更改图片中物体的颜色_Python Opencv提取图片中某种颜色组成的图形的方法...
Python Opencv提取图片中某种颜色组成的图形的方法 主要目标识别图中红色的裂缝,尝试了几种不同的方法,最后发现比较每一点的RGB差值可以很好的解决这个问题,也就是提取图片中的红色相关信息.处 ...
- python怎么实现音乐快进_Python 超简单3行代码提取音乐高潮(附批量提取)
有些时候,为了设定手机铃声或者发抖音视频,我们会耗费大量时间在剪辑音乐高潮部分上.那么这个音乐高潮的提取能不能自动化呢?当然可以. 先来听听效果,孤芳自赏提取高潮后的部分: 怎么样,是不是迫不及待想往 ...
最新文章
- C#中TextBox只能输入数字的代码
- 位运算,处理前台多选值
- dataframe输出某列的数据以及统计某列的取值种数+输出某行数据
- ExtJS入门(08)窗口,按钮,输入框,
- 「OC」类的深入研究、description方法和sel
- Windows的特色
- ogg sqlserver mysql_ogg 报错,求大神解决方法
- 什么是java cdm_Java-ORM数据库框架CDM介绍
- clientHeight、offsetHeight、innerHeight、ouerHeight 区别
- 家政上门预约服务小程序源码+前端后端
- 个别网站打不开,但是别人能打开,手机能打开
- hololens拍照
- Promise 基本使用详解
- SEER数据库中肿瘤发病率计算并绘制发病率趋势图
- 蓝桥杯单片机学习3——数码管静态显示
- 光猫、路由器和交换机区别
- 可控硅过零导通程序--可控硅驱动程序
- Final Cut Pro X for Mac(FCPX专业视频剪辑软件) v10.4.6中文特别版
- Scrapy-Redis 爬取快代理免费
- 浏览器中H5存储方式的横向对比
热门文章
- cvc降噪和主动降噪_小米降噪项圈蓝牙耳机来了:Hybrid主动降噪技术
- asf linux教程,ASF V3.0 windows/linux含树莓派部署流程
- 学python必会英语单词_Python必备常用英语词汇(一)
- 数据结构之查找算法:散列查找
- 使用和了解Valgrind核心:高级主题
- 1003. 检查替换后的词是否有效
- 应用netstat查看目标机TCP连接的状况
- 常见的爬虫分析库(1)-Python3中Urllib库基本使用
- JavaScript代码规范和性能整理
- android jni与java之间数据传输时怎么转换