Morphological operations
Morphology is the study of shapes. In image processing, some simple operations can get you a long way. The first things to learn are erosion and dilation. In erosion, we look at a pixel’s local neighborhood and replace the value of that pixel with the minimum value of that neighborhood. In dilation, we instead choose the maximum.
The documentation for scikit-image's morphology module is here.
Importantly, we must use a structuring element, which defines the local neighborhood of each pixel. To get every neighbor (up, down, left, right, and diagonals), use morphology.square
; to avoid diagonals, use morphology.diamond
:
The central value of the structuring element represents the pixel being considered, and the surrounding values are the neighbors: a 1 value means that pixel counts as a neighbor, while a 0 value does not. So:
and
and
Erosion and dilation can be combined into two slightly more sophisticated operations, opening and closing. Here's an example:
What happens when run an erosion followed by a dilation of this image?
What about the reverse?
Try to imagine the operations in your head before trying them out below.
Exercise: use morphological operations to remove noise from a binary image.
Remove the smaller objects to retrieve the large galaxy.