Ich beginne mit einem numply Array eines Bildes.Hinzufügen von Dimensionen zu einem Numpy Array
In[1]:img = cv2.imread('test.jpg')
Die Form ist, was Sie für ein 640x480 RGB-Bild erwarten könnte.
In[2]:img.shape
Out[2]: (480, 640, 3)
Doch dieses Bild, das ich habe, ist ein Rahmen aus einem Video, das 100 Frames lang. Idealerweise hätte ich gerne ein einzelnes Array, das alle Daten dieses Videos enthält, so dass img.shape
(480, 640, 3, 100)
zurückgibt.
Was ist der beste Weg, um den nächsten Frame, das heißt, die nächste Reihe von Bilddaten, ein weiteres 480 x 640 x 3-Array zu meinem ursprünglichen Array hinzuzufügen?
Ich denke, das ist der Weg zu gehen. Wenn Sie die Verkettung verwenden, müssen Sie das Array jedes Mal in den Speicher verschieben, wenn Sie es hinzufügen. Für 100 Frames sollte das eigentlich egal sein, aber wenn man zu größeren Videos gehen möchte. BTW, ich hätte die Anzahl der Frames als erste Dimension verwendet, also ein (100,480,640,3) Array, so dass Sie auf einzelne Frames zugreifen können (was Sie normalerweise sehen wollen, oder?) Einfacher (F [1 ] anstelle von F [:,:,:, 1]). Natürlich sollte es in Bezug auf die Leistung keine Rolle spielen. – Magellan88