Dilate an Image to Enlarge a Shape
This example shows how to dilate an image using the imdilate function. The morphological dilation operation expands or thickens foreground objects in an image.
Create a simple sample binary image containing one foreground object: the square region of 1's in the middle of the image.
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'))
Create a structuring element to use with imdilate. To dilate a geometric object, you typically create a structuring element that is the same shape as the object.
SE = strel('square',3)SE =
strel is a square shaped structuring element with properties:
Neighborhood: [3×3 logical]
Dimensionality: 2
Dilate the image, passing the input image and the structuring element to imdilate. Note how dilation adds a rank of 1's to all sides of the foreground object.
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'))
For comparison, create a structuring element that is a different shape. Dilate the original image using the new structuring element.
SE2 = strel('diamond',1); BW3 = imdilate(BW,SE2); imshow(imresize(BW3,40,'nearest'))
