Zacznij terazZacznij za darmo

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

Zobacz kurs

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()
Edytuj i uruchom kod