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.

imdilate

Dilatar una imagen

Descripción

ejemplo

J = imdilate(I,SE) dilata una imagen en escala de grises, binaria o binaria empaquetada I utilizando el elemento estructurante SE.

J = imdilate(I,nhood) dilata la imagen I, en la que nhood es una matriz de 0 y 1 que especifica el entorno del elemento estructurante.

Esta sintaxis es equivalente a imdilate(I,strel(nhood)).

J = imdilate(___,packopt) especifica si I es una imagen binaria empaquetada.

ejemplo

J = imdilate(___,shape) especifica el tamaño de la imagen de salida.

Ejemplos

contraer todo

Lea una imagen binaria en el espacio de trabajo.

BW = imread('text.png');

Cree un elemento estructurante en forma de línea vertical.

se = strel('line',11,90);

Dilate la imagen con un elemento estructurante de líneas verticales y compare los resultados.

BW2 = imdilate(BW,se);
imshow(BW), title('Original')

Figure contains an axes object. The axes object with title Original contains an object of type image.

figure, imshow(BW2), title('Dilated')

Figure contains an axes object. The axes object with title Dilated contains an object of type image.

Lea una imagen en escala de grises en el espacio de trabajo.

originalI = imread('cameraman.tif');

Cree un elemento estructurante no plano, con forma de esfera.

se = offsetstrel('ball',5,5);

Dilate la imagen.

dilatedI = imdilate(originalI,se);

Muestre la imagen original y la dilatada.

imshowpair(originalI,dilatedI,'montage')

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

Cree dos elementos estructurantes planos con forma de línea, uno a 0 grados y otro a 90 grados.

se1 = strel('line',3,0)
se1 = 
strel is a line shaped structuring element with properties:

      Neighborhood: [1 1 1]
    Dimensionality: 2

se2 = strel('line',3,90)
se2 = 
strel is a line shaped structuring element with properties:

      Neighborhood: [3x1 logical]
    Dimensionality: 2

Dilate el valor escalar 1 con los dos elementos estructurantes en secuencia, utilizando la opción 'full'.

composition = imdilate(1,[se1 se2],'full')
composition = 3×3

     1     1     1
     1     1     1
     1     1     1

Cree un volumen 3D lógico con dos puntos.

BW = false(100,100,100);
BW(25,25,25) = true;
BW(75,75,75) = true;

Dilate el volumen 3D utilizando un elemento estructurante esférico.

se = strel('sphere',25);
dilatedBW = imdilate(BW,se);

Muestre el volumen de la imagen dilatada.

figure
isosurface(dilatedBW, 0.5)

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

Argumentos de entrada

contraer todo

Imagen de entrada, especificada como imagen en escala de grises o imagen binaria empaquetada de cualquier dimensión.

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

Elemento estructurante, especificado como un objeto escalar strel o un objeto offsetstrel. SE también puede ser un arreglo de objetos strel o de objetos offsetstrel, en cuyo caso imdilate realiza múltiples dilataciones de la imagen de entrada, utilizando cada elemento estructurante sucesivamente.

imdilate realiza la dilatación de escala de grises para todas las imágenes, excepto las de tipo logical. En este caso, el elemento estructurante debe ser plano y imdilate realiza la dilatación binaria.

Entorno del elemento estructurante, especificado como matriz con valores 0 y 1.

Ejemplo: [0 1 0; 1 1 1; 0 1 0]

Indicador de imagen binaria empaquetada, especificado como uno de los siguientes.

Valor

Descripción

'notpacked'

I se trata como un arreglo normal.

'ispacked'

I se trata como una imagen binaria empaquetada como la producida por bwpack. I debe ser un arreglo de uint32 2D y SE debe ser un elemento estructurante 2D plano. El valor de shape debe ser 'same'.

Tipos de datos: char | string

Tamaño de la imagen de salida, especificado como uno de los siguientes.

Valor

Descripción

'same'

La imagen de salida tiene el mismo tamaño que la imagen de entrada. Si el valor de packopt es 'ispacked', shape debe ser 'same'.

'full'

Calcula la dilatación completa.

Tipos de datos: char | string

Argumentos de salida

contraer todo

Imagen dilatada, devuelta como imagen en escala de grises, imagen binaria o imagen binaria empaquetada. Si la imagen de entrada I es binaria empaquetada, J también es binaria empaquetada. J tiene el mismo tipo de datos que I.

Más acerca de

contraer todo

Dilatación binaria

La dilatación binaria de A por B, con la denotación AB, se define como la operación de conjuntos:

AB={z|(B^)zA},

donde B^ es el reflejo del elemento estructurante B. En otras palabras, es el conjunto de ubicaciones de los píxeles z donde el elemento estructurante reflejado se solapa con los píxeles del primer plano en A cuando se traslada a z. Tenga en cuenta que algunas aplicaciones utilizan una definición de dilatación en la que no se refleja el elemento estructurante.

Para obtener más información sobre la dilatación binaria, consulte [1].

Dilatación de escala de grises

En la forma general de dilatación de escala de grises, el elemento estructurante tiene una altura. La dilatación de escala de grises de A(x, y) por B(x, y) se define como

(AB)(x,y)=max{A(xx,yy)+B(x,y)|(x,y)DB},

donde DB es el dominio del elemento estructurante B y A(x, y) se supone que está -∞ fuera del dominio de la imagen. Tenga en cuenta que algunas aplicaciones definen la dilatación de escala de grises utilizando una ecuación con A(x + x′, y + y′) en lugar de A(xx′, yy′).

Para crear un elemento estructurante con valores de altura distintos de cero, utilice la sintaxis strel(nhood,height), donde height da los valores de altura y nhood corresponde al dominio del elemento estructurante, DB.

Lo más habitual es que la dilatación de escala de grises se realice con un elemento estructurante plano (B(x,y) = 0). La dilatación de escala de grises mediante un elemento estructurante de este tipo equivale a un operador de máximo local

(AB)(x,y)=max{A(xx,yy)|(x,y)DB}.

Todas las sintaxis strel excepto strel(nhood,height), strel('arbitrary',nhood,height), y strel('ball',___) producen elementos estructurantes planos.

Sugerencias

  • Si la dimensionalidad de la imagen I es mayor que la dimensionalidad del elemento estructurante, la función imdilate aplica la misma dilatación morfológica a todos los planos en las dimensiones más altas.

    Puede utilizar este comportamiento para realizar la dilatación morfológica de imágenes RGB. Especifique un elemento estructurante 2D en el caso de las imágenes RGB para que el cierre se ejecute en cada canal de color por separado.

  • Cuando se especifica un entorno del elemento estructurante, imdilate determina el elemento central de nhood por floor((size(nhood)+1)/2).

  • imdilate aprovecha automáticamente la descomposición de un objeto de elemento estructurante (si existe). Además, al realizar la dilatación binaria con un objeto de elemento estructurante que tenga una descomposición, imdilate utiliza automáticamente el empaquetamiento de imágenes binarias para acelerar la dilatación [3].

Referencias

[1] Gonzalez, Rafael C., Richard E. Woods, and Steven L. Eddins. Digital Image Processing Using MATLAB. Third edition. Knoxville: Gatesmark Publishing, 2020.

[2] Haralick, Robert M., and Linda G. Shapiro. Computer and Robot Vision. 1st ed. USA: Addison-Wesley Longman Publishing Co., Inc., 1992, pp. 158-205.

[3] Boomgaard, Rein van den, and Richard van Balen. “Methods for Fast Morphological Image Transforms Using Bitmapped Binary Images.” CVGIP: Graphical Models and Image Processing 54, no. 3 (May 1, 1992): 252–58. https://doi.org/10.1016/1049-9652(92)90055-3.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

Consulte también

Funciones

Objetos