In an ideal environment, anything is possible from the perspective of segmentation, but ideal environments are hardly the norm. Consider the simple task of counting the number of number of mushrooms in a mushroom bed, and obtaining information about their sizes. Here is an image of a mushrooms growing in a mushroom bed.
It seems somewhat trivial – round white mushrooms contrasted against a brown background. But here’s the dig: these mushrooms are almost nicely spaced. It might be easy to segment these. Here’s the grayscale version of the image:
The corresponding histogram is nicely bimodal:
Performing a thresholding using Otsu with a threshold value of 109 produces the following binary image: The mushrooms appear as reasonably well separated objects in the image.
However ideal images don’t always exist. Consider this next image, I’m which the mushrooms are much closer to each other, and some are so close their shapes may be distorted, or occluded. So already there is information contained within the scene that will make the task more difficult. The first question to ask though is should be use colour? As the mushrooms are white, and the background dark, there is likely little to be gained from using colour image segmentation. So
Here’s the grayscale version of the image:
The corresponding histogram is *somewhat* bimodal, with the peak to the left representing the background “dirt”, and a broad grouping representing the mushrooms:
A binarization is performed using Otsu with a threshold value of 90. From the binary image, very few mushroom objects could be extracted, and it is unlikely thresholding alone (any algorithm) would be optimal.