This page illustrates the application of Becheur paradigm to image segmentation in order to extract the edges of an image of a solid (our goal).
The input image is shown below.
fig.
1 - Original Image
In order to extract the edges it is necessary first to take the Morphological Gradient of the image. That is shown in the image below (the image is inverted to better show all details).
fig. 2 - Gradient
A try to apply the Watershed operator now will result in the image below. This is because it is very sensitive to noise.
fig. 3 - An unsuccessful trying
The solution is to apply the Becheur paradigm. First is necessary to get external and internal markers. The external marker can be unique but it is necessary one internal marker to each extractful part of the image (this is estabilished by the goal). The image below shows the markers. They are obtained by a sequence of thresholdings and morphological filtering.
fig.
4 - Markers
The next step in the paradigm is to apply another operator known as minimum imposing transformation and this result is segmented by the watershed operator. The result is shown below (this image is also inverted).
fig. 5 - Gradient with minimum imposing on the markers
Can you see the difference between figure 2 (repeated below) and figure 5?
fig. 2 - Gradient
Now we can apply the Watershed. The result is shown below (image is random color mapped).
fig. 6 - Watershed operator result
To extract only the watersheds it is necessary to apply a thresholding at zero (as the watersheds lines have value zero). The result is shown below.
fig.
7 - Watersheds lines
The last image is the composing of the input image and the result of the watershed. As you see, the result is very precise.
fig.
8 - Composed result
Building the cantata workspace
Executing the cantata workspace segblock.wk