edge
Encontrar los bordes de una imagen 2D en escala de grises
Sintaxis
Descripción
devuelve una imagen binaria BW
= edge(I
)BW
que contiene 1
en las posiciones en las que la función detecta bordes de la imagen binaria o en escala de grises I
(y el valor 0
en todas las demás posiciones). De forma predeterminada, edge
usa el método de detección de bordes de Sobel.
Sugerencia
Para encontrar los bordes en una imagen 3D en escala de grises o binaria, utilice la función edge3
.
especifica la orientación de los bordes que se desea detectar. Los métodos de Sobel y de Prewitt pueden detectar bordes en dirección vertical, horizontal o ambas. El método de Roberts puede detectar bordes en ángulos de 45° respecto de la horizontal, de 135° respecto de la horizontal o ambos. Esta sintaxis solo es válida cuando BW
= edge(I
,method
,threshold
,direction
)method
tiene los valores "Sobel"
, "Prewitt"
o "Roberts"
.
[
también devuelve los gradientes direccionales. Si se emplean los métodos de Sobel y Prewitt, BW
,threshOut
,Gx
,Gy
] = edge(___)Gx
y Gy
representan los gradientes horizontal y vertical, respectivamente. Si se emplea el método de Roberts, Gx
y Gy
representan los gradientes en ángulos de 135° y 45° de la horizontal, respectivamente. Esta sintaxis solo es válida cuando method
tiene los valores "Sobel"
, "Prewitt"
o "Roberts"
.
Ejemplos
Argumentos de entrada
Argumentos de salida
Algoritmos
Si se emplean métodos de detección de bordes basados en la magnitud del gradiente (Sobel, Prewitt y Roberts),
edge
usathreshold
como umbral para la magnitud del gradiente.Si se emplean los métodos de cruce por cero, incluido el del filtro laplaciano-gaussiano,
edge
usathreshold
como umbral para los cruces por cero. En otras palabras, se detecta un borde si el cruce por cero se da con un salto grande. Si el salto es pequeño, no.El método de Canny aplica dos umbrales al gradiente: un umbral alto (baja sensibilidad de detección) y un umbral bajo (alta sensibilidad de detección).
edge
comienza con el resultado de baja sensibilidad y, después, lo expande hasta incluir los píxeles de los bordes conectados del resultado de alta sensibilidad. Esto contribuye a llenar los posibles huecos en los bordes detectados.En todos los casos,
edge
selecciona el umbral predeterminado de forma heurística a partir de los datos de entrada. La mejor manera de variar el umbral es ejecutaredge
una vez y capturar el umbral calculado como segundo argumento de salida. Después, puede aumentar el umbral respecto del valor que calculaedge
para detectar menos píxeles de borde o reducirlo para detectar más píxeles de borde.
Referencias
[1] Canny, John, "A Computational Approach to Edge Detection," IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. PAMI-8, No. 6, 1986, pp. 679-698.
[2] Lim, Jae S., Two-Dimensional Signal and Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1990, pp. 478-488.
[3] Parker, James R., Algorithms for Image Processing and Computer Vision, New York, John Wiley & Sons, Inc., 1997, pp. 23-29.
Capacidades ampliadas
Historial de versiones
Introducido antes de R2006aConsulte también
edge3
| fspecial
| imgradient
| imgradientxy