Comece agoraComece grátis

Detectar bordas (1)

Filtros também podem ser usados como "detectores". Se uma parte da imagem se ajustar ao padrão de pesos, o valor retornado será muito alto (ou muito baixo).

No caso da detecção de bordas, esse padrão é uma mudança de intensidade ao longo de um plano. Um filtro que detecta bordas horizontais pode ser assim:

pesos = [[+1, +1, +1],
         [ 0,  0,  0],
         [-1, -1, -1]]

Neste exercício, crie um detector de bordas vertical e veja como ele se sai no raio-x da mão (im).

Este exercicio faz parte do curso

Análise de Imagens Biomédicas em Python

Ver curso

Instruções do exercicio

  • Crie um array 3x3 de pesos do filtro que detecte quando a intensidade muda da esquerda para a direita. Use apenas os valores 1, 0 e -1.
  • Convolva im com o detector de bordas.
  • Plote as bordas horizontais com o mapa de cores seismic. Use vmin=-150 e vmax=150 para ajustar a escala do mapa de cores.
  • Adicione uma barra de cores e renderize os resultados.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# Set weights to detect vertical edges
weights = [[____], [____], [____]]

# Convolve "im" with filter weights
edges = ____

# Draw the image in color
plt.imshow(____, ____, vmin=-150, vmax=150)
____
format_and_render_plot()
Editar e Executar Código