Um pipeline de processamento de imagens
Sua colega escreveu uma função de pré-processamento para usar nas imagens de linguagem de sinais americana, com o objetivo de aumentar a precisão do seu modelo de Machine Learning. Essa função recebe uma imagem em tons de cinza e executa a detecção de bordas de Canny. A detecção de Canny é comum na visão computacional clássica e destaca as bordas dos objetos em uma imagem. Você quer aplicá-la a todas as imagens do seu conjunto de dados.
A função que sua colega escreveu está disponível no seu ambiente como compute_edges(), e recebe uma imagem com dimensões (1, h, w), onde a altura h e a largura w podem ser quaisquer inteiros.
O array Dask com suas imagens está disponível no ambiente como image_array. Esse array tem formato (N, h, w, 3), onde N é o número de imagens, e há 3 canais para vermelho, azul e verde.
dask.array já foi importado para você como da.
Este exercício faz parte do curso
Programação Paralela com Dask em Python
Instruções do exercício
- Converta a imagem de colorida para tons de cinza calculando a média ao longo da última dimensão.
- Use o método
.map_blocks()do array em tons de cinza para aplicar a funçãocompute_edges()a cada imagem. - Selecione apenas a imagem de bordas de índice zero e compute-a.
- Use
plt.imshow()para plotar as bordas.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()