Profilo di iacoposk8

Nome iacoposk8
Indirizzo email n/a
Messaggi1
  • 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=uint8)," mi aspetterei un ,
    array([[[128, 166, 175], e non un 128, 166, 175

    grazie.