Bird
Raised Fist0
SciPydata~5 mins

Morphological operations (erosion, dilation) in SciPy - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is erosion in morphological operations?
Erosion shrinks bright regions in an image by removing pixels on object boundaries. It helps remove small noise and detach connected objects.
Click to reveal answer
beginner
What does dilation do in morphological image processing?
Dilation expands bright regions by adding pixels to object boundaries. It helps fill small holes and connect nearby objects.
Click to reveal answer
beginner
Which scipy function is used for erosion?
The function scipy.ndimage.binary_erosion is used to perform erosion on binary images.
Click to reveal answer
beginner
Which scipy function is used for dilation?
The function scipy.ndimage.binary_dilation is used to perform dilation on binary images.
Click to reveal answer
beginner
How do erosion and dilation affect the size of objects in a binary image?
Erosion makes objects smaller by removing edge pixels, while dilation makes objects bigger by adding pixels to edges.
Click to reveal answer
What is the main effect of erosion on a binary image?
ABlurs the image
BShrinks bright regions
CChanges colors
DExpands bright regions
Which scipy function performs dilation?
Ascipy.ndimage.binary_dilation
Bscipy.ndimage.binary_erosion
Cscipy.ndimage.gaussian_filter
Dscipy.ndimage.median_filter
What is a common use of dilation in image processing?
AFill small holes
BRemove noise
CReduce image size
DConvert to grayscale
What happens to object size after erosion?
AObjects become larger
BObjects change color
CObjects become smaller
DObjects become blurred
Which operation would you use to separate two connected objects?
ASharpening
BDilation
CBlurring
DErosion
Explain in your own words what erosion and dilation do in image processing.
Think about how these operations change the size of shapes in a black and white image.
You got /3 concepts.
    Describe a real-life example where you might use erosion and dilation on an image.
    Imagine cleaning a photo or preparing it for counting objects.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the erosion operation do to a binary image in morphological processing?
      easy
      A. It inverts the colors of the image.
      B. It enlarges the white regions by adding pixels to edges.
      C. It shrinks the white regions by removing edge pixels.
      D. It blurs the image to reduce noise.

      Solution

      1. Step 1: Understand erosion effect

        Erosion removes pixels on object boundaries, making white regions smaller.
      2. Step 2: Compare with other operations

        Dilation adds pixels, inversion changes colors, blurring smooths image; none match erosion.
      3. Final Answer:

        It shrinks the white regions by removing edge pixels. -> Option C
      4. Quick Check:

        Erosion = Shrink white regions [OK]
      Hint: Erosion shrinks shapes by cutting edges [OK]
      Common Mistakes:
      • Confusing erosion with dilation
      • Thinking erosion adds pixels
      • Mixing erosion with color inversion
      2. Which of the following is the correct way to import the erosion function from scipy's ndimage module?
      easy
      A. from scipy.ndimage import erosion
      B. from scipy.ndimage import binary_erosion
      C. import scipy.ndimage.erosion
      D. from scipy import erosion

      Solution

      1. Step 1: Identify correct function name

        The function for erosion on binary images is named binary_erosion in scipy.ndimage.
      2. Step 2: Check import syntax

        Correct import is from scipy.ndimage import binary_erosion. Other options are invalid or incorrect names.
      3. Final Answer:

        from scipy.ndimage import binary_erosion -> Option B
      4. Quick Check:

        Correct import = binary_erosion [OK]
      Hint: Use binary_erosion for erosion in scipy.ndimage [OK]
      Common Mistakes:
      • Using wrong function name 'erosion'
      • Incorrect import syntax
      • Trying to import from scipy root
      3. Given the following code, what will be the output array after applying dilation?
      import numpy as np
      from scipy.ndimage import binary_dilation
      
      image = np.array([[0, 0, 0, 0, 0],
                        [0, 1, 1, 0, 0],
                        [0, 1, 0, 0, 0],
                        [0, 0, 0, 0, 0]])
      
      result = binary_dilation(image).astype(int)
      print(result)
      medium
      A. [[0 0 0 0 0] [0 0 1 0 0] [0 1 0 0 0] [0 0 0 0 0]]
      B. [[0 0 0 0 0] [0 1 1 0 0] [0 1 0 0 0] [0 0 0 0 0]]
      C. [[1 1 1 0 0] [1 1 1 1 0] [1 1 1 1 0] [0 1 1 0 0]]
      D. [[0 1 1 0 0] [1 1 1 1 0] [1 1 1 0 0] [0 1 0 0 0]]

      Solution

      1. Step 1: Understand binary_dilation effect

        Dilation adds pixels to the edges of white regions (1s), expanding them by one pixel in all directions.
      2. Step 2: Apply dilation to given image

        Original white pixels at (1,1),(1,2),(2,1). After dilation, neighbors become 1, resulting in the array in [[0 1 1 0 0] [1 1 1 1 0] [1 1 1 0 0] [0 1 0 0 0]].
      3. Final Answer:

        [[0 1 1 0 0] [1 1 1 1 0] [1 1 1 0 0] [0 1 0 0 0]] -> Option D
      4. Quick Check:

        Dilation = expand edges [OK]
      Hint: Dilation grows white pixels by one layer [OK]
      Common Mistakes:
      • Confusing dilation with erosion
      • Not converting boolean to int for print
      • Misreading array indices
      4. The following code is intended to perform erosion on a binary image, but it raises an error. What is the problem?
      import numpy as np
      from scipy.ndimage import erosion
      
      image = np.array([[1, 1, 0],
                        [1, 0, 0],
                        [0, 0, 1]])
      
      result = erosion(image)
      print(result)
      medium
      A. The function 'erosion' does not exist in scipy.ndimage; use 'binary_erosion' instead.
      B. The input image must be float type, not int.
      C. The image array shape is invalid for erosion.
      D. The print statement syntax is incorrect.

      Solution

      1. Step 1: Check function availability

        Scipy.ndimage does not have a function named 'erosion'; the correct function is 'binary_erosion'.
      2. Step 2: Correct the import and usage

        Replace 'from scipy.ndimage import erosion' with 'from scipy.ndimage import binary_erosion' and call 'binary_erosion(image)'.
      3. Final Answer:

        The function 'erosion' does not exist in scipy.ndimage; use 'binary_erosion' instead. -> Option A
      4. Quick Check:

        Use binary_erosion, not erosion [OK]
      Hint: Use binary_erosion, not erosion function [OK]
      Common Mistakes:
      • Trying to import non-existent 'erosion'
      • Ignoring error messages
      • Assuming all morphological functions have simple names
      5. You have a noisy binary image with small white dots scattered outside the main object. Which sequence of morphological operations using scipy.ndimage would best remove these small dots but keep the main shape mostly intact?
      hard
      A. Apply erosion followed by dilation (opening) to remove small objects.
      B. Apply dilation followed by erosion (closing) to fill small holes.
      C. Apply only dilation to enlarge all white areas.
      D. Apply only erosion to shrink all white areas drastically.

      Solution

      1. Step 1: Understand noise removal goal

        Small white dots are noise; we want to remove them without changing main shape much.
      2. Step 2: Choose correct morphological sequence

        Opening (erosion then dilation) removes small objects but keeps main shape. Closing fills holes, not remove dots.
      3. Final Answer:

        Apply erosion followed by dilation (opening) to remove small objects. -> Option A
      4. Quick Check:

        Opening = erosion + dilation removes noise [OK]
      Hint: Use opening (erosion then dilation) to remove small noise [OK]
      Common Mistakes:
      • Using closing instead of opening for noise removal
      • Applying only dilation or erosion alone
      • Confusing noise removal with hole filling