Bird
Raised Fist0
MATLABdata~5 mins

Morphological operations in MATLAB

Choose your learning style10 modes available
Introduction

Morphological operations help us change shapes in images. They make it easier to find or fix parts of pictures.

To remove small spots or noise from a black and white image.
To fill small holes inside objects in an image.
To separate objects that are touching each other.
To find the outline or edges of shapes in an image.
To make objects in an image bigger or smaller.
Syntax
MATLAB
BW2 = imerode(BW, SE)
BW2 = imdilate(BW, SE)
BW2 = imopen(BW, SE)
BW2 = imclose(BW, SE)

BW is the input binary image (black and white).

SE is the structuring element that defines the shape used for the operation.

Examples
This shrinks objects in the image using a disk shape of radius 3.
MATLAB
SE = strel('disk', 3);
BW2 = imerode(BW, SE);
This grows objects in the image using a 5x5 square shape.
MATLAB
SE = strel('square', 5);
BW2 = imdilate(BW, SE);
This removes small objects or noise using a vertical line shape.
MATLAB
SE = strel('line', 4, 90);
BW2 = imopen(BW, SE);
This fills small holes or gaps using a diamond shape.
MATLAB
SE = strel('diamond', 2);
BW2 = imclose(BW, SE);
Sample Program

This program reads a black and white image, removes small noise using opening, then fills small holes using closing. It shows all three images side by side.

MATLAB
% Read a binary image
BW = imread('text.png');

% Create a disk-shaped structuring element
SE = strel('disk', 2);

% Perform morphological opening to remove noise
BW_opened = imopen(BW, SE);

% Perform morphological closing to fill holes
BW_closed = imclose(BW_opened, SE);

% Show original and processed images
figure;
subplot(1,3,1); imshow(BW); title('Original Image');
subplot(1,3,2); imshow(BW_opened); title('After Opening');
subplot(1,3,3); imshow(BW_closed); title('After Closing');
OutputSuccess
Important Notes

Morphological operations work best on binary images (black and white).

The structuring element shape and size affect the result a lot.

Opening is erosion followed by dilation; closing is dilation followed by erosion.

Summary

Morphological operations change shapes in images to help with analysis.

Use erosion to shrink and dilation to grow objects.

Opening removes small noise; closing fills small holes.

Practice

(1/5)
1. Which MATLAB function is used to create a structuring element for morphological operations?
easy
A. imerode
B. strel
C. imopen
D. imdilate

Solution

  1. Step 1: Understand structuring element creation

    The structuring element defines the shape used in morphological operations.
  2. Step 2: Identify the MATLAB function for structuring elements

    In MATLAB, strel creates structuring elements like disks or lines.
  3. Final Answer:

    strel -> Option B
  4. Quick Check:

    Structuring element = strel [OK]
Hint: Remember: strel makes shapes for morphology [OK]
Common Mistakes:
  • Confusing strel with imopen or imerode
  • Using imdilate to create structuring elements
  • Thinking imopen creates structuring elements
2. Which of the following is the correct syntax to perform erosion on a binary image BW using a disk structuring element of radius 3?
easy
A. BW2 = imopen(BW, strel('disk', 3));
B. BW2 = imdilate(BW, strel('disk', 3));
C. BW2 = imerode(BW, strel('disk', 3));
D. BW2 = imclose(BW, strel('disk', 3));

Solution

  1. Step 1: Identify the erosion function

    In MATLAB, imerode performs erosion on images.
  2. Step 2: Check the syntax for erosion with a disk structuring element

    The correct syntax is imerode(image, strel('disk', radius)).
  3. Final Answer:

    BW2 = imerode(BW, strel('disk', 3)); -> Option C
  4. Quick Check:

    Erosion syntax = imerode(image, strel) [OK]
Hint: imerode + strel('disk', radius) erodes image [OK]
Common Mistakes:
  • Using imdilate instead of imerode
  • Wrong order of arguments
  • Missing quotes around 'disk'
3. What will be the output size of the binary image BW2 after applying BW2 = imdilate(BW, strel('square', 3)); if BW is a 5x5 matrix?
medium
A. Cannot determine without image content
B. 7x7
C. 3x3
D. 5x5

Solution

  1. Step 1: Understand dilation size effect

    Dilation expands shapes but does not change image size in MATLAB.
  2. Step 2: Check MATLAB behavior on image size

    MATLAB morphological functions keep the output image size same as input.
  3. Final Answer:

    5x5 -> Option D
  4. Quick Check:

    Output size = input size for imdilate [OK]
Hint: Morphology keeps image size same in MATLAB [OK]
Common Mistakes:
  • Assuming dilation increases image size
  • Confusing structuring element size with output size
  • Thinking output depends on image content
4. Consider the code snippet:
se = strel('line', 5, 45);
BW2 = imerode(BW, se);

What is the likely error if BW is a grayscale image instead of binary?
medium
A. No error; imerode works on grayscale images
B. Error because strel cannot create line elements
C. Error because imerode expects binary images only
D. Error due to missing image conversion to binary

Solution

  1. Step 1: Check imerode input types

    MATLAB's imerode supports both binary and grayscale images.
  2. Step 2: Verify structuring element creation

    strel('line', 5, 45) correctly creates a line structuring element.
  3. Final Answer:

    No error; imerode works on grayscale images -> Option A
  4. Quick Check:

    imerode supports grayscale and binary [OK]
Hint: imerode works on grayscale too, no conversion needed [OK]
Common Mistakes:
  • Thinking imerode only works on binary
  • Assuming strel('line') is invalid
  • Forgetting imerode supports grayscale images
5. You want to remove small noise dots from a binary image BW without changing the main shapes. Which morphological operation and structuring element combination is best?
hard
A. imopen with strel('disk', 2)
B. imclose with strel('square', 5)
C. imerode with strel('line', 3, 0)
D. imdilate with strel('diamond', 1)

Solution

  1. Step 1: Understand noise removal by morphology

    Opening removes small objects (noise) while preserving shape size.
  2. Step 2: Choose suitable structuring element

    A disk with radius 2 is good for removing small dots without harming main shapes.
  3. Final Answer:

    imopen with strel('disk', 2) -> Option A
  4. Quick Check:

    Opening + disk removes noise best [OK]
Hint: Use imopen with small disk to clean noise [OK]
Common Mistakes:
  • Using imclose which fills holes
  • Using erosion alone which shrinks shapes
  • Using dilation alone which enlarges noise
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard