1. 程式人生 > 程式設計 >Python提取視訊中圖片的示例(按幀、按秒)

Python提取視訊中圖片的示例(按幀、按秒)

一、按幀提取

#coding=utf-8
import os
import cv2
 
def save_img():  #提取視訊中圖片 按照每幀提取
 video_path = r'D:\\test\\' #視訊所在的路徑
 f_save_path = 'D:\\aaa\\' #儲存圖片的上級目錄
 videos = os.listdir(video_path) #返回指定路徑下的檔案和資料夾列表。
 for video_name in videos:  #依次讀取視訊檔案
 file_name = video_name.split('.')[0] #拆分視訊檔名稱 ,剔除字尾
 folder_name = f_save_path + file_name #儲存圖片的上級目錄+對應每條視訊名稱 構成新的目錄存放每個視訊的
 os.makedirs(folder_name,exist_ok=True) #建立存放視訊的對應目錄
 vc = cv2.VideoCapture(video_path+video_name) #讀入視訊檔案
 c=0   #計數 統計對應幀號
 rval=vc.isOpened() #判斷視訊是否開啟 返回True或Flase
 
 while rval: #迴圈讀取視訊幀
  rval,frame = vc.read() #videoCapture.read() 函式,第一個返回值為是否成功獲取視訊幀,第二個返回值為返回的視訊幀:
  pic_path = folder_name+'/'
  if rval:
  cv2.imwrite(pic_path + file_name + '_' + str(c) + '.jpg',frame) #儲存為影象,儲存名為 資料夾名_數字(第幾個檔案).jpg
  cv2.waitKey(1) #waitKey()--這個函式是在一個給定的時間內(單位ms)等待使用者按鍵觸發;如果使用者沒有按下 鍵,則接續等待(迴圈)
  c = c + 1
  else:
  break
 vc.release()
 print('save_success'+folder_name)
 
save_img()

執行結果

Python提取視訊中圖片的示例(按幀、按秒)

二、按秒提取

#coding=utf-8
import os
from cv2 import cv2

def save_img2():  #提取視訊中圖片 按照每秒提取 間隔是視訊幀率
 video_path = r'D:\\test\\' #視訊所在的路徑
 f_save_path = 'D:\\aaa\\' #儲存圖片的上級目錄
 videos = os.listdir(video_path) #返回指定路徑下的檔案和資料夾列表。
 for video_name in videos:  #依次讀取視訊檔案
 file_name = video_name.split('.')[0] #拆分視訊檔名稱 ,剔除字尾
 folder_name = f_save_path + file_name #儲存圖片的上級目錄+對應每條視訊名稱 構成新的目錄存放每個視訊的
 os.makedirs(folder_name,exist_ok=True) #建立存放視訊的對應目錄
 vc = cv2.VideoCapture(video_path+video_name) #讀入視訊檔案
 fps = vc.get(cv2.CAP_PROP_FPS) #獲取幀率
 print(fps) #幀率可能不是整數 需要取整
 rval=vc.isOpened() #判斷視訊是否開啟 返回True或Flase
 c = 1
 while rval: # 迴圈讀取視訊幀
  rval,frame = vc.read() # videoCapture.read() 函式,第一個返回值為是否成功獲取視訊幀,第二個返回值為返回的視訊幀:
  pic_path = folder_name + '/'
  if rval:
   
  if (c % round(fps) == 0): # 每隔fps幀進行儲存操作,可自行指定間隔
   cv2.imwrite(pic_path + file_name + '_' + str(c) + '.jpg',frame) # 儲存為影象,儲存名為 資料夾名_數字(第幾個檔案).jpg
  cv2.waitKey(1) # waitKey()--這個函式是在一個給定的時間內(單位ms)等待使用者按鍵觸發;如果使用者沒有按下 鍵,則接續等待(迴圈)
  c = c + 1
  else:
  break
 vc.release()
 print('save_success' + folder_name)
 
save_img2()

執行結果

Python提取視訊中圖片的示例(按幀、按秒)

以上就是Python提取視訊中的幀圖片的示例的詳細內容,更多關於python 提取視訊圖片的資料請關注我們其它相關文章!