Una pipeline di elaborazione delle immagini
Un tuo collega ha scritto una funzione di preprocessing da usare sulle immagini della lingua dei segni americana per migliorare l'accuratezza del tuo modello di Machine Learning. Questa funzione prende un'immagine in scala di grigi ed esegue il rilevamento dei bordi di Canny. Il rilevamento dei bordi di Canny è comunemente usato nella computer vision classica e mette in evidenza i contorni degli oggetti in un'immagine. Vuoi applicarlo a tutte le immagini del tuo insieme di dati.
La funzione scritta dal tuo collega è disponibile nell'ambiente come compute_edges() e accetta un'immagine con dimensioni (1, h, w) dove l'altezza h e la larghezza w possono essere interi qualsiasi.
L'array Dask delle tue immagini è disponibile nell'ambiente come image_array. Questo array ha forma (N, h, w, 3) dove N è il numero di immagini, e ci sono 3 canali per rosso, blu e verde.
dask.array è già stato importato come da.
Questo esercizio fa parte del corso
Programmazione parallela con Dask in Python
Istruzioni dell'esercizio
- Converti l'immagine da colore a scala di grigi calcolando la media lungo l'ultima dimensione.
- Usa il metodo
.map_blocks()sugli array in scala di grigi per applicare la funzionecompute_edges()a ciascuna immagine. - Seleziona solo l'immagine dei bordi con indice zero ed esegui il calcolo.
- Usa
plt.imshow()per visualizzare i bordi.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Convert the color photos to grayscale
grayscale_images = ____
# Apply the edge detection function
edge_images = ____.____(____)
# Select the zeroth image and compute its values
sample_image = ____
# Show the result
____(____, cmap='gray')
plt.show()