我刚刚开始用python做我的项目。如何在Python中添加多维数组?
我想通过考虑在整个视频中出现的每个像素的值来提取视频中的背景。为此,我想将每个帧的像素值添加到前一个。
为了使它更简化,例如,我有一个视频,总帧数为400.帧大小为100X300。对于每个循环,我想追加(连接)当前帧的值。因此,在每个循环(用于读取视频中的帧)之后,数组的大小应该在第三个维度上增加1,并且在读取所有帧之后,我应该有一个大小为(100X300X400)的数组 - >数组100行,300列,400深度!
然后,我将计算每个像素的直方图。
您的帮助真的很感谢。
我正在使用OpenCV 3.1和Python 2.7.12使用Pycharm。
import cv2
import numpy as np
c = cv2.VideoCapture('NonStop_stab.mp4')
width = c.get(cv2.CAP_PROP_FRAME_WIDTH)
height = c.get(cv2.CAP_PROP_FRAME_HEIGHT)
numOfFrame= c.get(cv2.CAP_PROP_FRAME_COUNT)
fps= c.get(cv2.CAP_PROP_FPS)
size = (int(width), int(height))
_, f = c.read()
prevFrame= f
result_array= prevFrame
while c.isOpened():
#Here is the part I am asking
result_array = np.append(result_array, [prevFrame])
#
ret, f = c.read()
curFrame= f
if ret == True:
...['Do Something']
k = cv2.waitKey(20)
if k == 27:
print result_array.shape
break
else:
break
cv2.destroyAllWindows()
c.release()
out.release()
,你能否告诉到目前为止已经编写了什么,并解释,由引用你的代码哪些领域给你带来困难? – idjaw
我添加了我目前拥有的代码。我刚刚使用append(),但结果不像我想要的。 “result_array.shape”的输出就像(3185L,)! –