MATLAB: Fixing the appropriate threshold level to binarize a droplet image where the droplet area is found to vary with the threshold

image binarizationimage processingImage Processing Toolboximage segmentationMATLAB

I have to measure the diameter of a falling droplet as attached here. I can binarize and fill the holes to get the area in pixels. I have checked the area for threshold level 0.5 to 0.95 in imbinarize() function including the otsu's threshold value. Different threshold gives different area in pixels ranging from 1037 pixels to 1077 pixels as shown below. Now, how to choose the appropriate threshold level here for my diameter calculation?
Threshold area in pixels
0.95 1077
0.9 1073
0.85 1067
0.8 1064
0.75 1063
0.7 1061
0.65 1057
Otsu Threshold 1056
0.6 1050
0.55 1048
0.5 1037

Best Answer

For things that do not have super sharp edges, like a blob with a Gaussian profile, there is no one "right" or "correct" threshold. It's basically whatever you say it is, unless you can get some ground truth, like you have a bead and you can use calipers to measure it, and your image is blurred. So just pick something that looks right to you. I mean, who's to say it's wrong? If you have a known ground truth diameter (like the hard bead) , then you can try different thresholds until it gives you the right answer.
Related Question