我有一個python腳本與我想要轉換爲numpy數組的視頻在同一個文件夾中。我的視頻被稱爲'test.mp4'。如何將視頻轉換爲numpy數組?
在我的腳本中,我想打電話給someFunction('test.mp4')
並找回一個numpy數組。由此產生的numpy數組應該是一個numpy圖像數組,其中每個圖像都是一個3維numpy數組。
這有道理嗎?
謝謝!
我有一個python腳本與我想要轉換爲numpy數組的視頻在同一個文件夾中。我的視頻被稱爲'test.mp4'。如何將視頻轉換爲numpy數組?
在我的腳本中,我想打電話給someFunction('test.mp4')
並找回一個numpy數組。由此產生的numpy數組應該是一個numpy圖像數組,其中每個圖像都是一個3維numpy數組。
這有道理嗎?
謝謝!
下面的腳本做你想要的。你可以將它的一部分分解成函數。
下面的代碼不檢查錯誤,特別是生產代碼將檢查每個frame*
變量是否大於零。
import cv2
import numpy as np
cap = cv2.VideoCapture('test.mp4')
frameCount = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
frameWidth = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
frameHeight = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
buf = np.empty((frameCount, frameHeight, frameWidth, 3), np.dtype('uint8'))
fc = 0
ret = True
while (fc < frameCount and ret):
ret, buf[fc] = cap.read()
fc += 1
cap.release()
cv2.namedWindow('frame 10')
cv2.imshow('frame 10', buf[9])
cv2.waitKey(0)
skvideo是一個python包,可以用來讀取視頻並存儲到多維數組中。
import skvideo.io
videodata = skvideo.io.vread("video_file_name")
print(videodata.shape)
有關詳細信息: https://wingateacademy.blogspot.in/2018/01/scikit-video-skvideo-tutorial.html
如何將它變成numpy數組? –
videodata僅限numpy格式。 否則, import numpy as np - > temp = np.array(videodata) –
的可能的複製[?如何閱讀mp4視頻由scikit圖像處理(http://stackoverflow.com/questions/29718238/how-to -read-mp4-video-to---processing-by-scikit-image) – JulienD