Iniziamo con una serie numerica di un'immagine.Aggiungere dimensioni a un array Numpy
In[1]:img = cv2.imread('test.jpg')
La forma è ciò che ci si potrebbe aspettare per un'immagine RGB 640x480.
In[2]:img.shape
Out[2]: (480, 640, 3)
Tuttavia, questa immagine che ho è una cornice di un video, che è lunga 100 fotogrammi. Idealmente, mi piacerebbe avere un singolo array che contenga tutti i dati di questo video in modo tale che img.shape
restituisca (480, 640, 3, 100)
.
Qual è il modo migliore per aggiungere il fotogramma successivo, ovvero il prossimo insieme di dati di immagine, un altro array 480 x 640 x 3, al mio array iniziale?
Penso che questa sia la strada da percorrere. se usi la concatenazione dovrai spostare la matrice in memoria ogni volta che la aggiungi. per 100 frame che non dovrebbero avere importanza, ma se vuoi andare a video più grandi. A proposito, avrei usato il numero di fotogrammi come prima dimensione, quindi ho un array (100,480,640,3) in questo modo puoi accedere ai singoli fotogrammi (cosa vuoi che di solito vuoi vedere, giusto?) Più semplice (F [1] ] invece di F [:,:,:, 1]). Ovviamente, per quanto riguarda le prestazioni, non dovrebbe importare nulla. – Magellan88