EmpezarEmpieza gratis

Detecta bordes (1)

Los filtros también pueden usarse como "detectores". Si una parte de la imagen encaja con el patrón de pesos, el valor devuelto será muy alto (o muy bajo).

En el caso de la detección de bordes, ese patrón es un cambio de intensidad a lo largo de un plano. Un filtro que detecta bordes horizontales podría ser así:

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

En este ejercicio, crea un detector de bordes verticales y comprueba qué tal funciona con la radiografía de mano (im).

Este ejercicio forma parte del curso

Análisis de imágenes biomédicas en Python

Ver curso

Instrucciones del ejercicio

  • Crea un array 3x3 de pesos del filtro que detecte cuando la intensidad cambia de izquierda a derecha. Usa solo los valores 1, 0 y -1.
  • Convoluciona im con el detector de bordes.
  • Representa los bordes horizontales con el mapa de color seismic. Usa vmin=-150 y vmax=150 para ajustar la escala del mapa de color.
  • Añade una barra de color y muestra los resultados.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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 y ejecutar código