Python OpenCV實(shí)現(xiàn)視頻分幀
本文實(shí)例為大家分享了Python OpenCV實(shí)現(xiàn)視頻分幀的具體代碼,供大家參考,具體內(nèi)容如下
# 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í)有所幫助,也希望大家多多支持腳本之家。
- Python OpenCV讀取顯示視頻的方法示例
- python使用openCV遍歷文件夾里所有視頻文件并保存成圖片
- python 使用opencv 把視頻分割成圖片示例
- 使用python-opencv讀取視頻,計(jì)算視頻總幀數(shù)及FPS的實(shí)現(xiàn)
- 如何用OpenCV -python3實(shí)現(xiàn)視頻物體追蹤
- Python OpenCV視頻截取并保存實(shí)現(xiàn)代碼
- 使用Python opencv實(shí)現(xiàn)視頻與圖片的相互轉(zhuǎn)換
- Python+OpenCV+pyQt5錄制雙目攝像頭視頻的實(shí)例
- Python+OpenCV采集本地?cái)z像頭的視頻
- python利用opencv保存、播放視頻
相關(guān)文章
python實(shí)現(xiàn)rest請(qǐng)求api示例
這篇文章主要介紹了python實(shí)現(xiàn)rest請(qǐng)求api示例,需要的朋友可以參考下2014-04-04
解決windows上安裝tensorflow時(shí)報(bào)錯(cuò),“DLL load failed: 找不到指定的模塊”的問(wèn)題
這篇文章主要介紹了解決windows上安裝tensorflow時(shí)報(bào)錯(cuò),“DLL load failed: 找不到指定的模塊”的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
Python列表pop()函數(shù)使用實(shí)例詳解
這篇文章主要介紹了Python列表pop()函數(shù)使用實(shí)例詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
Python構(gòu)建網(wǎng)頁(yè)爬蟲(chóng)原理分析
這篇文章主要給大家講解了構(gòu)建網(wǎng)頁(yè)爬蟲(chóng)的技術(shù)原理以及實(shí)現(xiàn)的邏輯關(guān)系,有興趣的朋友閱讀下吧。2017-12-12
基于Python matplotlib庫(kù)繪制箱線(xiàn)圖
這篇文章主要為大家分享了如何利用Python中的matplotlib庫(kù)實(shí)現(xiàn)繪制箱線(xiàn)圖與異常值的輸出,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-04-04
python 集合set中 add與update區(qū)別介紹
這篇文章主要介紹了python 集合set中 add與update區(qū)別介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Python實(shí)現(xiàn)一個(gè)優(yōu)先級(jí)隊(duì)列的方法
這篇文章主要介紹了Python實(shí)現(xiàn)一個(gè)優(yōu)先級(jí)隊(duì)列的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
Python3批量創(chuàng)建Crowd用戶(hù)并分配組
這篇文章主要介紹了Python3批量創(chuàng)建Crowd用戶(hù)并分配組,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05

