Edges Extraction for Robotic Application


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


The same workspace can be applied without any changes to other blocks as you can see below.

Building the cantata workspace

Executing the cantata workspace segblock.wk

Back to the initial page