Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

bwtraceboundary

Trazar un objeto en una imagen binaria

Descripción

B = bwtraceboundary(BW,P,fstep) traza el contorno de un objeto en una imagen binaria BW. Los píxeles distintos de cero pertenecen a un objeto y los píxeles con valor cero conforman el fondo. P especifica las coordenadas de fila y de columna del punto sobre el límite del objeto donde usted desea comenzar el trazado. fstep especifica la dirección de búsqueda inicial del píxel del siguiente objeto conectado a P. B mantiene las coordenadas de fila y columna de los píxeles del límite de la región.

B = bwtraceboundary(BW,P,fstep,conn) traza el contorno, donde conn especifica la conectividad deseada.

ejemplo

B = bwtraceboundary(BW,P,fstep,conn,m,dir) especifica m, el número máximo de píxeles de límite que extraer y dir, la dirección en la que se traza el límite. De forma predeterminada, bwtraceboundary identifica todos los píxeles del límite.

Ejemplos

contraer todo

Lea una imagen y muéstrela.

BW = imread('blobs.png');
imshow(BW)

Figure contains an axes object. The axes object contains an object of type image.

Elija un objeto en la imagen y trace el límite. Para seleccionar un objeto, especifique un píxel en su límite. Este ejemplo utiliza las coordenadas de un píxel del límite del círculo con línea blanca gruesa, obtenidas por inspección visual mediante impixelinfo. De forma predeterminada, bwtraceboundary identifica todos los píxeles del límite.

r1 = 163;
c1 = 37;
contour = bwtraceboundary(BW,[r1 c1],'W');

Represente el límite en la imagen.

hold on
plot(contour(:,2),contour(:,1),'g','LineWidth',2)

Figure contains an axes object. The axes object contains 2 objects of type image, line.

Elija un punto del límite de un segundo objeto. Este ejemplo usa las coordinadas de un píxel cerca de la esquina superior izquierda del rectángulo mayor. Trace los primeros cincuenta píxeles del límite en el sentido de las agujas del reloj.

r2 = 68;
c2 = 95;
contourCW = bwtraceboundary(BW,[r2 c2],'W',8,50,'clockwise');

Empezando en el mismo punto sobre el límite del segundo objeto, trace los primeros cincuenta píxeles del límite en el sentido contrario a las agujas del reloj.

contourCCW = bwtraceboundary(BW,[r2 c2],'W',8,50,'counterclockwise');

Represente el contorno de la imagen en rojo en el sentido de las agujas del reloj. Represente el contorno de la imagen en el sentido contrario a las agujas del reloj en azul.

plot(contourCW(:,2),contourCW(:,1),'r','LineWidth',2)
plot(contourCCW(:,2),contourCCW(:,1),'b','LineWidth',2)

Figure contains an axes object. The axes object contains 4 objects of type image, line.

Argumentos de entrada

contraer todo

Imagen binaria, especificada como matriz lógica o numérica 2D.

Coordenadas del punto de partida en el límite del objeto donde usted desea empezar el trazado, especificado como un vector de 2 elementos del formato [row column].

Tipos de datos: double

Dirección de búsqueda inicial para el siguiente píxel del objeto conectado a P, especificada como un vector de caracteres o escalar de cadena tal y como se muestra en el diagrama.

The initial search directions correspond to the four cardinal and four ordinal directions: "N" for north, "NE" for northeast, and so on.

Nota

Cuando la conectividad conn es 4, fstep se limita a los valores "N", "E", "S" y "W".

Tipos de datos: char | string

Conectividad de píxeles, especificada como 8 o 4.

Valor

Significado

Conectividades bidimensionales

4

Los píxeles se consideran conectados si comparten bordes. El entorno de un píxel son los píxeles adyacentes en las direcciones horizontal y vertical.

3-by-3 pixel neighborhood with four pixels connected to the center pixel

El píxel actual se muestra en gris.

8

Los píxeles se consideran conectados si comparten bordes o vértices. El entorno de un píxel son los píxeles adyacentes en las direcciones horizontal, vertical y diagonal.

3-by-3 pixel neighborhood with 8 pixels connected to the center pixel

El píxel actual se muestra en gris.

Tipos de datos: double

Número máximo de píxeles de límites que se desea extraer, especificado como un entero positivo. De forma predeterminada, m es Inf y bwtraceboundary identifica todos los píxeles del límite.

Tipos de datos: double

Dirección en la que trazar el límite, especificada como "clockwise" o "counterclockwise".

Tipos de datos: char | string

Argumentos de salida

contraer todo

Coordenadas de fila y columna de los píxeles del límite para la región, devueltos como una matriz de q por 2. Cada fila en B tiene la forma [row column].

Algoritmos

La función bwtraceboundary implementa el algoritmo de trazado de Moore-Neighbor, modificado por los criterios de detención de Jacob. Esta función se basa en la función boundaries presentada en la primera edición de Digital Image Processing Using MATLAB, de González, R. C., R. E. Woods, y S. L. Eddins, Nueva Jersey, Pearson Prentice Hall, 2004.

Referencias

[1] Gonzalez, R. C., R. E. Woods, and S. L. Eddins, Digital Image Processing Using MATLAB, New Jersey, Pearson Prentice Hall, 2004.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

|