我在与要转换为numpy数组的视频相同的文件夹中有一个python脚本。我的视频称为“ test.mp4”。
在我的脚本中,我想调用someFunction('test.mp4')并返回一个numpy数组。所得的numpy数组应为图像的numpy数组,其中每个图像均为3-d numpy数组。
someFunction('test.mp4')
那有意义吗?
谢谢!
下面的脚本可以满足您的需求。您可以将它的一部分分成函数。
下面的代码不检查错误,特别是生产代码将检查每个frame*变量是否大于零。
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)