Potok przetwarzania obrazów
Twój współpracownik napisał funkcję wstępnego przetwarzania obrazów języka migowego ASL (American Sign Language), która ma zwiększyć dokładność modelu uczenia maszynowego. Funkcja ta przyjmuje obraz w skali szarości i wykonuje na nim detekcję krawędzi metodą Canny'ego. Jest to klasyczna technika z zakresu wizji komputerowej, która wyróżnia krawędzie obiektów na obrazie. Chcesz zastosować tę funkcję do wszystkich obrazów w swoim zbiorze danych.
Funkcja napisana przez współpracownika jest dostępna w środowisku pod nazwą compute_edges(). Przyjmuje ona obraz o wymiarach (1, h, w), gdzie wysokość h i szerokość w mogą być dowolnymi liczbami całkowitymi.
Tablica Dask z twoimi obrazami jest dostępna w środowisku jako image_array. Ma ona kształt (N, h, w, 3), gdzie N to liczba obrazów, a 3 kanały odpowiadają składowym czerwonej, niebieskiej i zielonej.
dask.array został zaimportowany jako da.
To ćwiczenie jest częścią kursu
Programowanie równoległe z Dask w Pythonie
Instrukcje do ćwiczenia
- Przekształć obraz z kolorowego na obraz w skali szarości, obliczając średnią wzdłuż ostatniego wymiaru.
- Użyj metody
.map_blocks()na tablicy obrazów w skali szarości, aby zastosować funkcjęcompute_edges()do każdego obrazu. - Wybierz tylko zerowy obraz krawędziowy i oblicz go.
- Użyj funkcji
plt.imshow(), aby wyświetlić krawędzie.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()