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.

bwmorph

Las operaciones morfológicas en imágenes binarias

Descripción

ejemplo

BW2 = bwmorph(BW,operation) aplica una operación morfológica específica a la imagen binaria.BW

Nota

Para realizar operaciones morfológicas en una imagen volumétrica 3-D, utilice.bwmorph3

Opcionalmente, puede realizar la operación morfológica usando una GPU (requiere).Parallel Computing Toolbox™ Para obtener más información, consulte.Procesamiento de imágenes en una GPU

BW2 = bwmorph(BW,operation,n) aplica los tiempos de operación. puede ser, en cuyo caso la operación se repite hasta que la imagen ya no cambia.nnInf

Ejemplos

Realice operaciones morfológicas en la imagen binaria

Leer la imagen binaria y mostrarla.

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

Quite los píxeles interiores para dejar un contorno de las formas.

BW2 = bwmorph(BW,'remove'); figure imshow(BW2)

Consigue el esqueleto de la imagen.

BW3 = bwmorph(BW,'skel',Inf); figure imshow(BW3)

Realice operaciones morfológicas en una GPU

En este ejemplo se realizan las mismas operaciones que el ejemplo anterior, pero se realizan en una GPU. El ejemplo comienza leyendo la imagen en un.gpuArray

BW1 = gpuArray(imread('circles.png')); figure imshow(BW1)  BW2 = bwmorph(BW1,'remove'); figure imshow(BW2)  BW3 = bwmorph(BW1,'skel',Inf); figure imshow(BW3)

Argumentos de entrada

contraer todo

Imagen de entrada, especificada como una imagen binaria. La imagen de entrada puede ser numérica o lógica y debe ser 2-D, real y no dispersa.

Para realizar la operación morfológica utilizando una GPU, especifique como un que contiene una imagen binaria.BWgpuArray

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Operación morfológica a realizar, especificada como una de las siguientes.

Operación

Descripción

'bothat'

Realiza la operación de "sombrero inferior" morfológico, devolviendo la imagen menos el cierre morfológico de la imagen (dilatación seguida de erosión).

'branchpoints'

Encuentra puntos de ramificación de esqueleto. Por ejemplo:

0  0  1  0  0           0  0  0  0  0 0  0  1  0  0  becomes  0  0  0  0  0 1  1  1  1  1           0  0  1  0  0 0  0  1  0  0           0  0  0  0  0 0  0  1  0  0           0  0  0  0  0

Nota: Para encontrar puntos de bifurcación, la imagen debe estar esqueletizada. Para crear una imagen esqueletizada, utilice.bwmorph(BW,'skel')

'bridge'

Puentes no conectados píxeles, es decir, establece píxeles de 0 valores a si tienen dos vecinos distintos de cero que no están conectados.1 Por ejemplo:

1  0  0           1  1  0  1  0  1  becomes  1  1  1  0  0  1           0  1  1 

'clean'

Elimina los píxeles aislados (1s individuales que están rodeados por 0s), como el píxel central de este patrón.

0  0  0  0  1  0  0  0  0 

'close'

Realiza el cierre morfológico (dilatación seguida de erosión).

'diag'

Utiliza relleno diagonal para eliminar la conectividad 8 del fondo. Por ejemplo:

0  1  0           0  1  0  1  0  0  becomes  1  1  0  0  0  0           0  0  0 

'endpoints'

Encuentra los puntos finales del esqueleto. Por ejemplo:

1  0  0  0           1  0  0  0 0  1  0  0  becomes  0  0  0  0 0  0  1  0           0  0  1  0 0  0  0  0           0  0  0  0

Nota: Para encontrar puntos finales, la imagen debe ser esqueletizada. Para crear una imagen esqueletizada, utilice.bwmorph(BW,'skel')

'fill'

Rellena los píxeles interiores aislados (0s individuales que están rodeados por 1s), como el píxel central de este patrón.

1  1  1  1  0  1  1  1  1 

'hbreak'

Elimina los píxeles conectados a H. Por ejemplo:

1  1  1           1  1  1  0  1  0  becomes  0  0  0  1  1  1           1  1  1 

'majority'

Establece un píxel en si cinco o más píxeles en su vecindad de 3 por 3 son 1s; de lo contrario, establece el píxel en.10

'open'

Realiza la abertura morfológica (erosión seguida por dilatación).

'remove'

Elimina los píxeles interiores. Esta opción establece un píxel en si todos sus 4 vecinos conectados están, lo que deja sólo los píxeles de contorno en.01

'shrink'

Con, encoge los objetos a puntos.n = Inf Elimina los píxeles para que los objetos sin taladros se reduzcan a un punto y los objetos con taladros se reduzcan a un anillo conectado a mitad de camino entre cada taladro y el contorno exterior. Esta opción conserva el número Euler.

'skel'

Con, elimina los píxeles de los límites de los objetos, pero no permite que los objetos se separen.n = Inf Los píxeles restantes conforman el esqueleto de la imagen. Esta opción conserva el número Euler.

Cuando trabaje con volúmenes 3-D, o cuando desee podar un esqueleto, utilice la función.bwskel

'spur'

Elimina los píxeles rectos. Por ejemplo:

0  0  0  0           0  0  0  0 0  0  0  0           0  0  0  0 0  0  1  0  becomes  0  0  0  0 0  1  0  0           0  1  0  0 1  1  0  0           1  1  0  0 

'thicken'

Con, engrosa los objetos agregando píxeles al exterior de los objetos hasta que esto daría como resultado que los objetos previamente no conectados estuvieran conectados a 8.n = Inf Esta opción conserva el número Euler.

'thin'

Con, thins se opone a las líneas.n = Inf Elimina los píxeles de modo que un objeto sin taladros se encoja a un trazo mínimamente conectado y un objeto con taladros se encoge a un anillo conectado a mitad de camino entre cada taladro y el contorno exterior. Esta opción conserva el número Euler. Vea para más detalles.Algoritmos

'tophat'

Realiza la operación de "sombrero superior" morfológico, devolviendo la imagen menos la abertura morfológica de la imagen (erosión seguida por dilatación).

Ejemplo: BW3 = bwmorph(BW,'skel');

Tipos de datos: char | string

Número de veces que se realiza la operación, especificada como un valor numérico. puede ser, en cuyo caso se repite la operación hasta que la imagen ya no cambia.nInfbwmorph

Ejemplo: BW3 = bwmorph(BW,'skel',100);

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Argumentos de salida

contraer todo

Imagen de salida, devuelta como una imagen binaria.

Si la operación morfológica se realiza mediante una GPU, se devuelve como una que contiene una imagen binaria.BW2gpuArray

Tipos de datos: logical

Sugerencias

  • Para realizar la erosión o dilatación, utilice las funciones o.imerodeimdilate Si desea duplicar la dilatación o erosión realizada por, a continuación, especifique el elemento de estructuración con estas funciones.bwmorphones(3)

Algoritmos

contraer todo

Cuando se utiliza con la opción, utiliza el siguiente algoritmo:'thin'bwmorph[3]

  1. En la primera subiteration, elimine el píxel si y solo si las condicionespG1,G2YG3 están satisfechos.

  2. En la segunda subiteration, elimine el píxel si y solo si las condicionespG1,G2Y G3 están satisfechos.

Condición G1:

XH(p)=1

Dónde

XH(p)=i=14bi

bi={1, if x2i1=0 and (x2i=1 or x2i+1=1)0, otherwise                                          

x1,x2, ...,x8 son los valores de los ocho vecinos de, comenzando por el vecino del este y numerados en orden antihorario.p

Condición G2:

2min{n1(p),n2(p)}3

Dónde

n1(p)=k=14x2k1x2k

n2(p)=k=14x2kx2k+1

Condición G3:

(x2x3x¯8)x1=0

Condición G3 ':

(x6x7x¯4)x5=0

Las dos subiterations juntos conforman una iteración del algoritmo de simplificación. Cuando el usuario especifica un número infinito de iteraciones (), las iteraciones se repiten hasta que la imagen deja de cambiar.n=Inf Todas las condiciones se prueban con tablas de búsqueda precalculadas.applylut

Referencias

[1] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Vol. 1, Addison-Wesley, 1992.

[2] Kong, T. Yung and Azriel Rosenfeld, Topological Algorithms for Digital Image Processing, Elsevier Science, Inc., 1996.

[3] Lam, L., Seong-Whan Lee, and Ching Y. Suen, "Thinning Methodologies-A Comprehensive Survey," IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol 14, No. 9, September 1992, page 879, bottom of first column through top of second column.

[4] Pratt, William K., Digital Image Processing, John Wiley & Sons, Inc., 1991.

Capacidades ampliadas

Consulte también

| | | | |

Introducido antes de R2006a