1. 程式人生 > 實用技巧 >錄製的視訊,使用python opencv去擷取幀數(只取某一幀)同時可裁剪影象尺寸

錄製的視訊,使用python opencv去擷取幀數(只取某一幀)同時可裁剪影象尺寸

coding: utf-8

指定某一幀擷取影象(不包括裁剪)

import cv2 as cv
import os

1.讀取視訊資料夾

filepath = './Input_video' # 需要讀取的視訊的路徑
pathDir = os.listdir(filepath) # 獲取資料夾中檔名稱

2.截視訊幀數

for allDir in pathDir: # 逐個讀取視訊檔案
a = 80# 擷取指定幀數
videopath = r'./Input_video/'+allDir # 視訊檔案路徑
vc = cv.VideoCapture(videopath) # 讀入視訊檔案
# 儲存視訊的子目錄
path = './Video_Result(Only-1)Frame/'#+allDir.split('.')[0] # 資料夾名稱 + 以什麼符號分割,此處選擇直接放進一個資料夾中
if not os.path.exists(path): # 如果不存在就建立資料夾
os.mkdir(path)
if vc.isOpened(): # 判斷載入的視訊是否能夠開啟
rval , frame = vc.read()
else:
rval = False
while rval:

	vc.set(cv.CAP_PROP_POS_FRAMES, a) # 擷取指定幀數
	rval,frame = vc.read()      # 分幀讀取視訊
	#frame = frame[130:920,380:1420]

	cv.imencode('.jpg',frame)[1].tofile(path +'/' + str(a) +'-'+ allDir[:-4] + '.jpg')  
	print(str(a) +'-'+ allDir[:-4] + '---視訊擷取完成')
	break

print('\n','處理完成,請移步------→ :Video_Result(Only-1)Frame檢視結果')