EmpezarEmpieza gratis

Detecta bordes (2)

La detección de bordes puede realizarse a lo largo de varios ejes y luego combinarse en un único valor de borde. Para imágenes 2D, los «mapas de bordes» horizontal y vertical pueden combinarse usando el teorema de Pitágoras:

$$z = \sqrt{x^2 + y^2}$$

Uno de los detectores de bordes más populares es el filtro de Sobel. El filtro de Sobel da más peso a los píxeles centrales del detector:

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

En este ejercicio, mejora tu detección previa fusionando los resultados de dos imágenes filtradas con Sobel en un mapa de bordes compuesto.

Este ejercicio forma parte del curso

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

Ver curso

Instrucciones del ejercicio

  • Aplica ndi.sobel() a im a lo largo del primer y segundo ejes.
  • Calcula la magnitud total del borde usando el teorema de Pitágoras. Utiliza np.sqrt() y np.square().
  • Muestra la imagen de magnitud. Usa una paleta de grises y establece vmax en 75.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Apply Sobel filter along both axes
sobel_ax0 = ndi.sobel(____, axis=____)
sobel_ax1 = ____

# Calculate edge magnitude 
edges = ____

# Plot edge magnitude
plt.imshow(____, ____, ____)
format_and_render_plot()
Editar y ejecutar código