欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

Preface

最近在做 video caption 相關,要處理大量視頻。

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

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中刪除文件的程序代碼

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

    詳解Python中命令行參數argparse的常用命令

    這篇文章主要為大家詳細介紹了Python中命令行參數argparse的一些常用命令,文中的示例代碼講解詳細,具有一定的學習價值,需要的可以了解一下
    2023-01-01
  • Python使用Selenium進行Web自動化測試

    Python使用Selenium進行Web自動化測試

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

    最新2019Pycharm安裝教程 親測

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

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

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

    使用Python生成隨機密碼的示例分享

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

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

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

    Pytorch用Tensorboard來觀察數據

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

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

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

    Python畫圖實現(xiàn)同一結點多個柱狀圖的示例

    今天小編就為大家分享一篇Python畫圖實現(xiàn)同一結點多個柱狀圖的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07

最新評論