Every operation here tests how a small shape, the structuring element (StrataQuest calls it the kernel), meets the foreground. The Engines Reference gives the picture: dilation is the set of points the kernel covers as its center moves inside an object, and erosion is the set of points its center can reach while the kernel stays inside. So a 10-pixel square dilated by a disk of radius 2 becomes a 14-pixel square with rounded corners, and eroded it becomes a 6-pixel square.
Each operation is its own entry under Morphological:
| Operation | What it does |
|---|---|
| Dilate | Inflates the shapes in the image. |
| Erode | Deflates the shapes in the image. |
| Open (erode, dilate) | Erosion, then dilation with the same kernel. Removes noise and small objects from the foreground. |
| Close (dilate, erode) | Dilation, then erosion with the same kernel. Removes noise and small holes. |
| Top-hatLoading... | The image minus its opening, which the reference calls an estimated background. Used for feature extraction, background equalization and image enhancement. |
| Dilate (with black border), Erode (with black border) | Add a black border to the image, then dilate or erode it. |
| Fill holesLoading... | Fills holes in a mask: background pixels that cannot be reached by filling in the background. |
| Fill small holes | Fills only holes with fewer pixels than Area threshold (px). |
| Remove small objects (from mask) | Removes connected objects with fewer pixels than Area threshold (px), an operation known as an area opening. |
| Skeleton, and the skeleton and spur operationsLoading... | Reduce objects to 1-pixel-wide center lines, then find branch and end points, or extend, remove, shorten or split spurs. |
In image processing generally, two more transforms are common: the morphological gradient (dilation minus erosion) and the bottom-hat (closing minus the image). The Morphological list has neither, nor a hit-or-miss transform. You can assemble the first two from Dilate, Erode, Close and Subtract images in the arithmetic operationsLoading..., because the module lets each operation use the outputs of earlier ones.