Конвеєр обробки зображень
Ваш колега написав функцію попередньої обробки для зображень американської жестової мови, щоб підвищити точність вашої моделі машинного навчання. Ця функція бере зображення у відтінках сірого та виконує на ньому пошук контурів за Канні. Алгоритм Канні часто застосовують у класичному комп'ютерному баченні — він виділяє краї об'єктів на зображенні. Ви хочете застосувати його до всіх зображень у вашому наборі даних.
Функція, яку написав ваш колега, доступна у вашому середовищі як compute_edges(), і вона приймає зображення з розмірами (1, h, w), де висота h і ширина w — довільні цілі числа.
Масив Dask із вашими зображеннями доступний у середовищі як image_array. Цей масив має форму (N, h, w, 3), де N — кількість зображень, а 3 канали відповідають червоному, синьому та зеленому.
dask.array уже імпортовано для вас як da.
Ця вправа є частиною курсу
Паралельне програмування з Dask у Python
Інструкції до вправи
- Перетворіть зображення з кольорового у відтінки сірого, взявши середнє вздовж останнього виміру.
- Використайте метод
.map_blocks()для масивів у відтінках сірого, щоб застосувати функціюcompute_edges()до кожного зображення. - Виберіть лише нульове зображення контурів і обчисліть його.
- Скористайтеся
plt.imshow(), щоб побудувати зображення контурів.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()