I am not an expert, but I really do not understand how the Watershed algorithm can be very useful for your segmentation problem.
From my limited experience / dealing with such problems, I would have thought that the path that would have to be done is to try to use the sliding window approach to segmentation. Basically, this entails moving the image using a window of a given size and trying to determine if the window includes a background or an object. You will want to try different sizes and window steps.
Doing this should allow you to detect an object in the image, assuming the images contain relatively well defined objects. You can also try to perform segmentation after converting the image to black and white with a certain threshold, which gives a good separation of background and objects.
Once you identify the object through a sliding window, you can try to determine the brightest color using one of the methods that you mentioned.
UPDATE
Based on your comment, here is another potential approach that might work for you:
If you think that the objects will be mostly uniform in color, you can try to process the image:
- remove noise;
- display the original image in a reduced color space (i.e. 256 or event color 16)
- Detect related components based on pixel color and determine which ones are large enough.
You can also re-sample the image for a lower resolution (i.e. if the image is 1024 x 768, you can reduce it to 256 x 192) to speed up the algorithm.
The only thing left to do is determine which component is the background. It may make sense to also try to remove the background by converting to black / white with a specific threshold.
source share