Конвейер обработки изображений
Ваш коллега написал функцию предобработки для изображений американского языка жестов — она поможет повысить точность вашей модели машинного обучения. Функция принимает изображение в оттенках серого и применяет к нему алгоритм выделения краёв Канни. Этот алгоритм широко используется в классическом компьютерном зрении и позволяет выделить контуры объектов на изображении. Вам нужно применить его ко всем изображениям в наборе данных.
Функция, написанная коллегой, доступна в вашей среде под именем 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()