最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)前目錄打開(kāi)終端,輸入如下命令:

$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ù)的指定方式如上。一開(kāi)始在這里跌了好幾個(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正則表達(dá)式之對(duì)號(hào)入座篇

    python正則表達(dá)式之對(duì)號(hào)入座篇

    正則表達(dá)式是對(duì)字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來(lái)表達(dá)對(duì)字符串的一種過(guò)濾邏輯
    2018-07-07
  • 基于Python的socket庫(kù)實(shí)現(xiàn)通信功能的示例代碼

    基于Python的socket庫(kù)實(shí)現(xiàn)通信功能的示例代碼

    本文主要給大家介紹了如何使用python的socket庫(kù)實(shí)現(xiàn)通信功能,這里簡(jiǎn)單的給每個(gè)客戶端增加一個(gè)不重復(fù)的uid,客戶端之間可以根據(jù)這個(gè)uid選擇進(jìn)行廣播通信,感興趣的小伙伴快來(lái)看看吧
    2023-08-08
  • 如何用Python實(shí)現(xiàn)八數(shù)碼問(wèn)題

    如何用Python實(shí)現(xiàn)八數(shù)碼問(wèn)題

    這篇文章主要給大家介紹了關(guān)于如何用Python實(shí)現(xiàn)八數(shù)碼問(wèn)題的相關(guān)資料,八數(shù)碼問(wèn)題是一種經(jīng)典的搜索問(wèn)題,它的目標(biāo)是將一個(gè)亂序的八數(shù)碼序列變成一個(gè)有序的八數(shù)碼序列,通常使用 A* 算法來(lái)解決,需要的朋友可以參考下
    2023-10-10
  • Python3+django2.0+apache2+ubuntu14部署網(wǎng)站上線的方法

    Python3+django2.0+apache2+ubuntu14部署網(wǎng)站上線的方法

    這篇文章主要介紹了Python3+django2.0+apache2+ubuntu14部署網(wǎng)站上線的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Python-Seaborn熱圖繪制的實(shí)現(xiàn)方法

    Python-Seaborn熱圖繪制的實(shí)現(xiàn)方法

    這篇文章主要介紹了Python-Seaborn熱圖繪制的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 給Python的Django框架下搭建的BLOG添加RSS功能的教程

    給Python的Django框架下搭建的BLOG添加RSS功能的教程

    這篇文章主要介紹了給Python的Django框架下搭建的BLOG添加RSS功能的教程,示例代碼非常簡(jiǎn)單,需要的朋友可以參考下
    2015-04-04
  • Python基礎(chǔ)必備之語(yǔ)法結(jié)構(gòu)詳解

    Python基礎(chǔ)必備之語(yǔ)法結(jié)構(gòu)詳解

    Python語(yǔ)法定義了用于在 Python 編程中創(chuàng)建句子的所有規(guī)則集。如果想更深入地研究 Python 詞法結(jié)構(gòu),需要了解構(gòu)成語(yǔ)句的句法元素,即構(gòu)成 Python 程序的基本單元,涵蓋控制結(jié)構(gòu),在不同代碼組之間引導(dǎo)程序流的構(gòu)造,快跟隨小編一起學(xué)習(xí)一下吧
    2022-04-04
  • SQLite5-使用Python來(lái)讀寫(xiě)數(shù)據(jù)庫(kù)

    SQLite5-使用Python來(lái)讀寫(xiě)數(shù)據(jù)庫(kù)

    這篇文章主要介紹了SQLite5-使用Python來(lái)讀寫(xiě)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的實(shí)際應(yīng)用,通常需要與程序結(jié)合起來(lái),通過(guò)程序來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和讀寫(xiě)。本篇先介紹Python語(yǔ)言來(lái)調(diào)用SQLite數(shù)據(jù)庫(kù),想具體了解的小伙伴可以參考一下</P><P>
    2021-12-12
  • Python多進(jìn)程方式抓取基金網(wǎng)站內(nèi)容的方法分析

    Python多進(jìn)程方式抓取基金網(wǎng)站內(nèi)容的方法分析

    這篇文章主要介紹了Python多進(jìn)程方式抓取基金網(wǎng)站內(nèi)容的方法,結(jié)合實(shí)例形式分析了Python多進(jìn)程抓取網(wǎng)站內(nèi)容相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2019-06-06
  • python3?cookbook解壓可迭代對(duì)象賦值給多個(gè)變量的問(wèn)題及解決方案

    python3?cookbook解壓可迭代對(duì)象賦值給多個(gè)變量的問(wèn)題及解決方案

    這篇文章主要介紹了python3?cookbook-解壓可迭代對(duì)象賦值給多個(gè)變量,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01

最新評(píng)論

宁城县| 大埔县| 新郑市| 蓝山县| 博客| 邓州市| 莱西市| 铜川市| 会同县| 保靖县| 南木林县| 南部县| 吴忠市| 分宜县| 京山县| 腾冲县| 桃园市| 喀什市| 龙泉市| 台安县| 五原县| 兰坪| 汉阴县| 南充市| 临沂市| 贵港市| 普定县| 响水县| 历史| 陵川县| 武宣县| 嘉禾县| 突泉县| 洱源县| 扎赉特旗| 花莲市| 石林| 烟台市| 剑川县| 乌兰浩特市| 蓝山县|