How to separate hand region after using multi-otsu's thresholding?

The attached image is the output after appling multi-otsu's thrsholding using 2 threshold value. How can I separate the hand region now ?
Remember the approah should be adaptive.

Answers (1)

Simply use ==. Assuming the hand is the brightest in your quantized, 3-level image:
maxGL = max(yourImage(:))
binaryImage = yourImage == maxGL;
% Extract only the largest blob:
binaryImage = bwareafilt(binaryImage, 1); % Binary image of only the hand.
If you want to crop it out to a separate, smaller image for some reason (probably not necessary though), you can do:
% Find Bounding Box:
props = regionprops(binaryImage, 'BoundingBox');
% Extract that bounding box out into it's own, smaller image.
handOnly = imcrop(binaryImage, props.BoundingBox);

6 Comments

@Image Analyst Thank you sir , it worked. One more thing I will ask you , how we can evaluate a segmentation algorithm ?
You'd need a ground truth segmentation - one that you know for a fact is 100% accurate. Then you can use dice.
Otherwise you can just make some subjective judgment about whether it's good enough for your needs, even if it's not 100% accurate or you don't know its accuracy.
@Image Analyst sir what is ground truth image here? Is the the original gray image??
No.
Let's say you use some kind of algorithm and segmented the image, thus producing a binary image. Well...how do you know that binary image is not accurate?
If you suspect that it's not accurate then you must have some other binary image produced by an algorithm much more trusted than the one you just used. So that would be your ground truth segmented image. Compare your binary image to that one using dice.
If you have no other binary image then perhaps you want to create one by hand tracing some region with drawpolygon. But why do you think that would be more accurate than your coded algorithm? Well, maybe it is, if your algorithm is really bad.
Sir it will be nice to create this ground truth image when there is few images but working with almost 1500 images will be hard. If I will be not comparing then how will show that my segmentation algorithm is doing great job
You can prove it did a great job because, without any "right answer", who is to say otherwise? With no authoritative right answer, no one can complain that your segmentation is not perfect.

Sign in to comment.

Categories

Asked:

on 24 Sep 2022

Commented:

on 26 Sep 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!