亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python tools實(shí)現(xiàn)視頻的每一幀提取并保存

 更新時(shí)間:2020年03月20日 17:23:22   作者:chenxp2311  
這篇文章主要為大家詳細(xì)介紹了python tools實(shí)現(xiàn)視頻的每一幀提取并保存,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Preface

最近在做 video caption 相關(guān),要處理大量視頻。

今天碰到一個(gè)問(wèn)題,就是要將 YoutubeClips 數(shù)據(jù)集 中的 avi 格式的視頻,將其視頻中的每一幀提取出來(lái)。之后用 High accuracy optical flow estimation based on a theory for warping 提出的 Optical Flow(光流),提取運(yùn)動(dòng)的光流特征。

Method 1

方法 1 是最簡(jiǎn)單的,用 FFmpeg 工具來(lái)完成。

具體的網(wǎng)上有很多這方面的資料,本人只是簡(jiǎn)單了解了一下如何使用。如下圖,有一個(gè)名為 ffmpeg_test.avi 的視頻:

在當(dāng)前目錄打開終端,輸入如下命令:

$ffmpeg -i ffmpeg_test.avi frames_%03d.jpg -hide_banner

以上我沒(méi)有指定太多的參數(shù),實(shí)際上有很多參數(shù)可以指定,如起止的時(shí)間,幾秒鐘取一幀等等。

輸入即可獲得每一幀。

Method 2

下面就是可以用 cv2 模塊中的 VideoCapture、VideoWriter 來(lái)提取了,具體代碼如下:

#! 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 格式。因?yàn)槲倚枰{(diào)用之前的 optical flow 論文中的 of 程序,來(lái)提取 optical flow image(光流圖)。

保存時(shí),根據(jù) opencv 的 Doc:OpenCV 2.4.9 cv2.imwrite,其參數(shù)的指定方式如上。一開始在這里跌了好幾個(gè)跟頭,因?yàn)椴恢廊绾螌?shù)正確的指定。

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中刪除文件的程序代碼

    Python中刪除文件的程序代碼

    很多軟件在運(yùn)行時(shí)會(huì)自動(dòng)創(chuàng)建一些備份文件,在程序退出后又不自動(dòng)刪除備份文件,隨著文件數(shù)量的增加,每隔一段時(shí)間就要清理一下。
    2011-03-03
  • 詳解Python中命令行參數(shù)argparse的常用命令

    詳解Python中命令行參數(shù)argparse的常用命令

    這篇文章主要為大家詳細(xì)介紹了Python中命令行參數(shù)argparse的一些常用命令,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以了解一下
    2023-01-01
  • Python使用Selenium進(jìn)行Web自動(dòng)化測(cè)試

    Python使用Selenium進(jìn)行Web自動(dòng)化測(cè)試

    Selenium 是一個(gè)用于 Web 應(yīng)用自動(dòng)化測(cè)試的強(qiáng)大工具,可以用來(lái)模擬用戶操作瀏覽器,從而測(cè)試 Web 應(yīng)用的功能,它支持多種瀏覽器和編程語(yǔ)言,包括 Python,下面我們將介紹如何使用 Selenium 進(jìn)行 Web 自動(dòng)化測(cè)試,需要的朋友可以參考下
    2024-08-08
  • 最新2019Pycharm安裝教程 親測(cè)

    最新2019Pycharm安裝教程 親測(cè)

    這篇文章主要介紹了最新2019Pycharm安裝教程,這篇教程親測(cè)試過(guò),本文內(nèi)容有點(diǎn)長(zhǎng),通過(guò)截圖的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2020-02-02
  • Python 多張圖片合并成一個(gè)pdf的參考示例

    Python 多張圖片合并成一個(gè)pdf的參考示例

    最近需要將記的筆記整理成一個(gè)pdf進(jìn)行保存,所以就研究了一下如何利用 Python 代碼將拍下來(lái)的照片整個(gè)合并成一個(gè)pdf
    2021-06-06
  • 使用Python生成隨機(jī)密碼的示例分享

    使用Python生成隨機(jī)密碼的示例分享

    這篇文章主要介紹了使用Python生成隨機(jī)密碼的示例分享,比如發(fā)生一些安全問(wèn)題時(shí)為用戶先設(shè)置隨機(jī)密碼然后供用戶修改的情況下可以用到,需要的朋友可以參考下
    2016-02-02
  • Python word文本自動(dòng)化操作實(shí)現(xiàn)方法解析

    Python word文本自動(dòng)化操作實(shí)現(xiàn)方法解析

    這篇文章主要介紹了Python word文本自動(dòng)化操作實(shí)現(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Pytorch用Tensorboard來(lái)觀察數(shù)據(jù)

    Pytorch用Tensorboard來(lái)觀察數(shù)據(jù)

    這篇文章主要介紹了Pytorch用Tensorboard來(lái)觀察數(shù)據(jù),上一篇文章我們講解了關(guān)于Pytorch?Dataset的數(shù)據(jù)處理,這篇我們就來(lái)講解觀察數(shù)據(jù),下面具體相關(guān)資料,需要的朋友可以參考一下,希望對(duì)你有所幫助
    2021-12-12
  • 【python】matplotlib動(dòng)態(tài)顯示詳解

    【python】matplotlib動(dòng)態(tài)顯示詳解

    這篇文章主要介紹了matplotlib動(dòng)態(tài)顯示,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Python畫圖實(shí)現(xiàn)同一結(jié)點(diǎn)多個(gè)柱狀圖的示例

    Python畫圖實(shí)現(xiàn)同一結(jié)點(diǎn)多個(gè)柱狀圖的示例

    今天小編就為大家分享一篇Python畫圖實(shí)現(xiàn)同一結(jié)點(diǎn)多個(gè)柱狀圖的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07

最新評(píng)論