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
Instrucciones del ejercicio
- Aplica
ndi.sobel()aima lo largo del primer y segundo ejes. - Calcula la magnitud total del borde usando el teorema de Pitágoras. Utiliza
np.sqrt()ynp.square(). - Muestra la imagen de magnitud. Usa una paleta de grises y establece
vmaxen75.
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()