Clear Filters
Clear Filters

Check if the code is correct or not for finding the diameter of objects in an image.

1 view (last 30 days)
Sir here I attached the code for finding the diameter of irregularly shaped objects in an image. Tell me if the code is correct to find the diameter or not .
if true
% code
end
originalImage = imread('result.jpg');
originalImage=rgb2gray(originalImage);
labeledImage = bwlabel(originalImage, 8);
D=regionprops(labeledImage,'area');
d1=regionprops(labeledImage,'EquivDiameter');

Accepted Answer

Image Analyst
Image Analyst on 9 Oct 2012
No, you need to create a binary image first, plus you can do it all in one call to regionprops():
originalImage = imread('result.jpg');
originalImage=rgb2gray(originalImage);
binaryImage = originalImage > thresholdValue; % for example 80 or 142 or some value.
labeledImage = bwlabel(binaryImage, 8);
D=regionprops(labeledImage,'area','EquivDiameter');
  5 Comments
Image Analyst
Image Analyst on 10 Oct 2012
You'd have to multiply the value from graythresh by 255 because that gives you a value in the range 0-1. Other than that it looks fine but you'd have to decide if graythresh's method (the "Otsu" method) works in your situation. I find that often it doesn't pick the best threshold and so I have to custom write a method to pick the threshold.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!