En bildbehandlingspipeline
Din kollega har skrivit en förbehandlingsfunktion för bilder av amerikanskt teckenspråk, i syfte att förbättra din maskininlärningsmodells precision. Funktionen tar en gråskalebild och kör Canny-kantdetektering på den. Canny-kantdetektering används ofta inom klassisk datorseende och framhäver kanterna på objekt i en bild. Du vill tillämpa den på alla bilder i din datamängd.
Funktionen som din kollega har skrivit finns tillgänglig i din miljö som compute_edges() och tar en bild med dimensionerna (1, h, w), där höjden h och bredden w kan vara godtyckliga heltal.
Dask-matrisen med dina bilder finns i miljön som image_array. Den har formen (N, h, w, 3), där N är antalet bilder och de 3 kanalerna motsvarar rött, blått och grönt.
dask.array har importerats åt dig som da.
Den här övningen är en del av kursen
Parallellprogrammering med Dask i Python
Övningsinstruktioner
- Konvertera bilden från färg till gråskala genom att ta medelvärdet längs den sista dimensionen.
- Använd
.map_blocks()-metoden på gråskalebildmatrisen för att tillämpa funktionencompute_edges()på varje bild. - Välj ut enbart den nollte kantbilden och beräkna den.
- Använd
plt.imshow()för att rita ut kanterna.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()