小编典典

如何将视频转换为numpy数组?

python

我在与要转换为numpy数组的视频相同的文件夹中有一个python脚本。我的视频称为“ test.mp4”。

在我的脚本中,我想调用someFunction('test.mp4')并返回一个numpy数组。所得的numpy数组应为图像的numpy数组,其中每个图像均为3-d
numpy数组。

那有意义吗?

谢谢!


阅读 208

收藏
2020-12-20

共1个答案

小编典典

下面的脚本可以满足您的需求。您可以将它的一部分分成函数。

下面的代码不检查错误,特别是生产代码将检查每个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)
2020-12-20