Una canalización de procesamiento de imágenes
Tu compañera/o ha escrito una función de preprocesamiento para usar en las imágenes de lengua de signos americana y así mejorar la precisión de tu modelo de Machine Learning. Esta función toma una imagen en escala de grises y ejecuta la detección de bordes de Canny. La detección de Canny se usa comúnmente en la visión por computador clásica y resalta los bordes de los objetos en una imagen. Quieres aplicarla a todas las imágenes de tu conjunto de datos.
La función que ha escrito tu compañera/o está disponible en tu entorno como compute_edges() y recibe una imagen con dimensiones (1, h, w), donde la altura h y la anchura w pueden ser cualquier número entero.
El array de Dask con tus imágenes está disponible en el entorno como image_array. Este array tiene forma (N, h, w, 3), donde N es el número de imágenes, y hay 3 canales para rojo, azul y verde.
dask.array ya se ha importado como da.
Este ejercicio forma parte del curso
Programación paralela con Dask en Python
Instrucciones del ejercicio
- Convierte la imagen de color a escala de grises calculando la media a lo largo de la última dimensión.
- Usa el método
.map_blocks()de los arrays en escala de grises para aplicar la funcióncompute_edges()a cada imagen. - Selecciona solo la imagen de bordes con índice cero y cálculala.
- Utiliza
plt.imshow()para mostrar los bordes.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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()