我有一个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