iacoposk8
Profilo di
Nome | iacoposk8 |
---|---|
Indirizzo email | n/a |
Messaggi | 1 |
-
- 2016-11-21 09:10:37
- Aggiungere elementi alla lista mantenendo la multidimensionalità
- Forum >> Principianti
- Ciao a tutti, ho una domanda facile a cui non trovo risposta.
Nel codice seguente prendo un immagine e la converto in array numpy 3d (cordinate x, y di ogni singolo pixel e colore rgb)
Poi
scorro questto array e estraggo sequenzialmente delle matrici 5 x 5 x 3
(quindi matrici di 5 x 5 px più i 3 valori rgb) e li inserisco in un
array
from PIL import Image import numpy as np img = Image.open("img.jpg") arr = np.array(img) x = [] h,w,rgb = arr.shape size = 5 for i in range(0,h): for j in range(0,w): part = arr[i:i+size,j:j+size] if len(part)==size and len(part0)==size: x.append(part)
Il risultato è una cosa tipo:
... [[129, 166, 175], [129, 166, 175], [130, 167, 175], [128, 166, 175], [128, 166, 175]], ... [[129, 166, 174], [129, 166, 174], [129, 166, 175], [129, 166, 175], [128, 166, 175]]], dtype=uint8), 129, 166, 175, array([[[129, 166, 175], [128, 166, 175], [128, 166, 175], [128, 166, 175], [128, 168, 176]], ... [[129, 166, 174], [129, 166, 175], [129, 166, 175], [128, 166, 175], [129, 167, 176]]], dtype=uint8), 129, 166, 175, array([[[128, 166, 175], [128, 166, 175], [128, 166, 175], [128, 168, 176], [128, 168, 178]], ... [[129, 166, 175], [129, 166, 175], [128, 166, 175], [129, 167, 176], [128, 168, 176]]], dtype=uint8), 128, 166, 175]
Mentre io mi aspetterei una cosa tipo
... [[129, 166, 175], [129, 166, 175], [130, 167, 175], [128, 166, 175], [128, 166, 175]], ... [[129, 166, 174], [129, 166, 174], [129, 166, 175], [129, 166, 175], [128, 166, 175]]], dtype=uint8), array([[[129, 166, 175], [128, 166, 175], [128, 166, 175], [128, 166, 175], [128, 168, 176]], ... [[129, 166, 174], [129, 166, 175], [129, 166, 175], [128, 166, 175], [129, 167, 176]]], dtype=uint8), array([[[128, 166, 175], [128, 166, 175], [128, 166, 175], [128, 168, 176], [128, 168, 178]], ... [[129, 166, 175], [129, 166, 175], [128, 166, 175], [129, 167, 176], [128, 168, 176]]], dtype=uint8)]
Quindi una matrice che sia sempre 5 x 5 x 3 non in alcuni punti
monodimensionali infatti dopo il ", dtype=uint," mi aspetterei un ,
array([[[128, 166, 175], e non un 128, 166, 175
grazie.