python實(shí)現(xiàn)視頻分幀效果
本文實(shí)例為大家分享了python實(shí)現(xiàn)視頻分幀的具體代碼,供大家參考,具體內(nèi)容如下
import cv2 vidcap = cv2.VideoCapture('005.avi') success,image = vidcap.read() count = 0 success = True while success: success,image = vidcap.read() cv2.imwrite("frame%d.jpg" % count, image) # save frame as JPEG file if cv2.waitKey(10) == 27: break count += 1
python tools:將視頻的每一幀提取并保存
# 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): """ 將視頻按固定間隔讀取寫(xiě)入圖片 :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)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python中日志模塊logging的使用技巧和應(yīng)用詳解
在Python開(kāi)發(fā)中,日志記錄是一個(gè)非常重要的環(huán)節(jié),它不僅有助于開(kāi)發(fā)者追蹤程序的執(zhí)行流程,還能在出現(xiàn)問(wèn)題時(shí)提供關(guān)鍵信息,幫助快速定位并解決問(wèn)題,本文將結(jié)合實(shí)際案例,詳細(xì)介紹logging模塊的基礎(chǔ)用法和高級(jí)特性,需要的朋友可以參考下2024-08-08Python中最強(qiáng)大的重試庫(kù)Tenacity使用探索
這篇文章主要為大家介紹了Python中最強(qiáng)大的重試庫(kù)Tenacity使用探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12django模型層(model)進(jìn)行建表、查詢(xún)與刪除的基礎(chǔ)教程
這篇文章主要給大家介紹了關(guān)于django模型層(model)進(jìn)行建表、查詢(xún)與刪除的等基礎(chǔ)操作的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11Python爬蟲(chóng)抓取手機(jī)APP的傳輸數(shù)據(jù)
大多數(shù)APP里面返回的是json格式數(shù)據(jù),或者一堆加密過(guò)的數(shù)據(jù) 。這里以超級(jí)課程表APP為例,抓取超級(jí)課程表里用戶(hù)發(fā)的話(huà)題2016-01-01python語(yǔ)言time庫(kù)和datetime庫(kù)基本使用詳解
這篇文章主要介紹了python語(yǔ)言time庫(kù)和datetime庫(kù)基本使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Python實(shí)現(xiàn)aes加密解密多種方法解析
這篇文章主要介紹了Python實(shí)現(xiàn)aes加密解密多種方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Python單鏈表簡(jiǎn)單實(shí)現(xiàn)代碼
這篇文章主要介紹了Python單鏈表簡(jiǎn)單實(shí)現(xiàn)代碼,結(jié)合實(shí)例形式分析了Python單鏈表的具體定義與功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-04-04