我剛剛開始用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,)! –