Python OpenCV對(duì)本地視頻文件進(jìn)行分幀保存的實(shí)例
如下所示:
# coding=utf-8 import os import cv2 videos_src_path = "/home/wgp/視頻/" video_formats = [".MP4", ".MOV"] frames_save_path = "/home/wgp/視頻/" width = 320 height = 240 time_interval = 50 def video2frame(video_src_path, formats, frame_save_path, frame_width, frame_height, interval): """ 將視頻按固定間隔讀取寫入圖片 :param video_src_path: 視頻存放路徑 :param formats: 包含的所有視頻格式 :param frame_save_path: 保存路徑 :param frame_width: 保存幀寬 :param frame_height: 保存幀高 :param interval: 保存幀間隔 :return: 幀圖片 """ videos = os.listdir(video_src_path) def filter_format(x, all_formats): if x[-4:] in all_formats: return True else: return False videos = filter(lambda x: filter_format(x, formats), videos) for each_video in videos: print "正在讀取視頻:", each_video each_video_name = each_video[:-4] os.mkdir(frame_save_path + each_video_name) each_video_save_full_path = os.path.join(frame_save_path, each_video_name) + "/" each_video_full_path = os.path.join(video_src_path, each_video) cap = cv2.VideoCapture(each_video_full_path) frame_index = 0 frame_count = 0 if cap.isOpened(): success = True else: success = False print("讀取失敗!") while(success): success, frame = cap.read() print "---> 正在讀取第%d幀:" % frame_index, success if frame_index % interval == 0: resize_frame = cv2.resize(frame, (frame_width, frame_height), interpolation=cv2.INTER_AREA) # cv2.imwrite(each_video_save_full_path + each_video_name + "_%d.jpg" % frame_index, resize_frame) cv2.imwrite(each_video_save_full_path + "%d.jpg" % frame_count, resize_frame) frame_count += 1 frame_index += 1 cap.release() if __name__ == '__main__': video2frame(videos_src_path, video_formats, frames_save_path, width, height, time_interval)
以上這篇Python OpenCV對(duì)本地視頻文件進(jìn)行分幀保存的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決Python3中Matplotlib繪圖顯示方塊的問(wèn)題
這篇文章主要介紹了解決Python3中Matplotlib繪圖顯示方塊的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09Python實(shí)現(xiàn)將Excel內(nèi)容批量導(dǎo)出為PDF文件
這篇文章主要為大家介紹了如何利用Python實(shí)現(xiàn)將Excel表格內(nèi)容批量導(dǎo)出為PDF文件,文中的實(shí)現(xiàn)步驟講解詳細(xì),感興趣的小伙伴可以了解一下2022-04-04Python實(shí)戰(zhàn)之單詞打卡統(tǒng)計(jì)
這篇文章主要介紹了Python實(shí)戰(zhàn)之單詞打卡統(tǒng)計(jì),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04Pygame鼠標(biāo)進(jìn)行圖片的移動(dòng)與縮放案例詳解
pygame是Python的第三方庫(kù),里面提供了使用Python開(kāi)發(fā)游戲的基礎(chǔ)包。本文將介紹如何通過(guò)Pygame實(shí)現(xiàn)鼠標(biāo)進(jìn)行圖片的移動(dòng)與縮放,感興趣的可以關(guān)注一下2021-12-12Python實(shí)例方法、類方法、靜態(tài)方法的區(qū)別與作用詳解
這篇文章主要介紹了Python實(shí)例方法、類方法、靜態(tài)方法的區(qū)別與作用,結(jié)合實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中實(shí)例方法、類方法、靜態(tài)方法的概念、原理、用法及相關(guān)操作技巧,需要的朋友可以參考下2019-03-03Python 中的字符串基礎(chǔ)與應(yīng)用小結(jié)
在Python中,字符串可以用單引號(hào)或雙引號(hào)括起來(lái),'hello' 與 "hello" 是相同的,這篇文章主要介紹了Python 中的字符串基礎(chǔ)與應(yīng)用,需要的朋友可以參考下2023-09-09淺談Python小波分析庫(kù)Pywavelets的一點(diǎn)使用心得
這篇文章主要介紹了淺談Python小波分析庫(kù)Pywavelets的一點(diǎn)使用心得,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07使用FFmpeg來(lái)無(wú)損壓縮視頻文件的操作方法
FFmpeg是業(yè)內(nèi)有名的開(kāi)源圖像視頻處理程序,在許多視頻剪輯軟件、圖像處理軟件中,都使用的FFmpeg,還有比如OBS這樣的導(dǎo)播軟件里面也使用了FFmpeg,FFmpeg的功能十分強(qiáng)大,遠(yuǎn)不止視頻壓縮的功能,本文介紹使用FFmpeg來(lái)無(wú)損壓縮視頻文件的操作方法,感興趣的朋友一起看看吧2023-12-12Python程序包的構(gòu)建和發(fā)布過(guò)程示例詳解
Python程序包的構(gòu)建和發(fā)布過(guò)程,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-06-06