91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python tools實現視頻的每一幀提取并保存

發布時間:2020-10-08 12:06:06 來源:腳本之家 閱讀:288 作者:chenxp2311 欄目:開發技術

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 的視頻:

python tools實現視頻的每一幀提取并保存

在當前目錄打開終端,輸入如下命令:

$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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

饶阳县| 柞水县| 海宁市| 白沙| 阳泉市| 二连浩特市| 岢岚县| 黎城县| 桐柏县| 五寨县| 荆州市| 新河县| 新泰市| 凉山| 西丰县| 惠来县| 开远市| 辽中县| 彭泽县| 岳阳市| 蒙山县| 成都市| 定安县| 广河县| 恭城| 丹寨县| 凤庆县| 新龙县| 乐山市| 保靖县| 通化市| 定日县| 大冶市| 涞源县| 南溪县| 长子县| 南丹县| 康平县| 曲靖市| 女性| 杨浦区|