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.

Dilatar una imagen para ampliar una forma

En este ejemplo se muestra cómo dilatar una imagen usando la función imdilate. La operación de dilatación morfológica amplía o espesa los objetos en primer plano de una imagen.

Cree una imagen binaria de muestra sencilla que contenga un objeto en primer plano: la región cuadrangular de los valores 1 en el centro de la imagen.

BW = zeros(9,10);
BW(4:6,4:7) = 1
BW = 9×10

     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     0
     0     0     0     1     1     1     1     0     0     0
     0     0     0     1     1     1     1     0     0     0
     0     0     0     1     1     1     1     0     0     0
     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     0

imshow(imresize(BW,40,'nearest'))

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

Cree un elemento estructurante para usar con imdilate. Para dilatar un objeto geométrico, generalmente se crea un elemento estructurante con la misma forma que el objeto.

SE = strel('square',3)
SE = 
strel is a square shaped structuring element with properties:

      Neighborhood: [3x3 logical]
    Dimensionality: 2

Dilate la imagen, pasando la imagen de entrada y el elemento estructurante a imdilate. Observe cómo la dilatación añade un rango de los valores 1 en todos los lados del objeto en primer plano.

BW2 = imdilate(BW,SE)
BW2 = 9×10

     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     0
     0     0     1     1     1     1     1     1     0     0
     0     0     1     1     1     1     1     1     0     0
     0     0     1     1     1     1     1     1     0     0
     0     0     1     1     1     1     1     1     0     0
     0     0     1     1     1     1     1     1     0     0
     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     0

imshow(imresize(BW2,40,'nearest'))

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

Con fines de comparación, cree un elemento estructurante que tenga una forma distinta. Dilate la imagen original usando el nuevo elemento estructurante.

SE2 = strel('diamond',1);
BW3 = imdilate(BW,SE2);
imshow(imresize(BW3,40,'nearest'))

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