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'))
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'))
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'))