Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Detección de bordes

En una imagen, un borde es una curva que sigue un camino de cambio rápido en la intensidad de la imagen. Las aristas a menudo se asocian con los límites de los objetos de una escena. La detección de bordes se utiliza para identificar los bordes de una imagen.

Para buscar aristas, puede utilizar la función.edge Esta función busca lugares en la imagen donde la intensidad cambia rápidamente, utilizando uno de estos dos criterios:

  • Lugares donde la primera derivada de la intensidad es mayor en magnitud que algunos umbrales

  • Lugares donde la segunda derivada de la intensidad tiene un cruce cero

proporciona varios estimadores derivados, cada uno de los cuales implementa una de estas definiciones.edge Para algunos de estos estimadores, puede especificar si la operación debe ser sensible a aristas horizontales, aristas verticales o ambas. devuelve una imagen binaria que contiene 1 donde se encuentran los bordes y 0 en otro lugar.edge

El método de detección de bordes más potente que proporciona es el método Canny.edge El método Canny difiere de los otros métodos de detección de bordes en que utiliza dos umbrales diferentes (para detectar bordes fuertes y débiles) e incluye los bordes débiles en la salida solo si están conectados a bordes fuertes. Por lo tanto, este método es menos probable que los demás se vean afectados por el ruido, y más propensos a detectar bordes débiles verdaderos.

Detectar bordes en imágenes

En este ejemplo se muestra cómo detectar bordes en una imagen utilizando el detector de bordes Canny y el detector de bordes Sobel.

Lea la imagen y muésela.

I = imread('coins.png'); imshow(I)

Aplique los detectores de bordes Sobel y Canny a la imagen y muéstralos para su comparación.

BW1 = edge(I,'sobel'); BW2 = edge(I,'canny'); figure; imshowpair(BW1,BW2,'montage') title('Sobel Filter                                   Canny Filter');