# Diameter of Almost circular objects and degree of circularity

8 views (last 30 days)
Jason on 17 Jan 2023
Commented: Jason on 17 Jan 2023
Hello, I am trying to measure the diameter of central white spot and the dark area.
I understand they perfect circles but I'd like to get a close estimation and also a measure of circularity (I believe by a ratio of perimeter^2/area).
I thought imfindcircles would work, I have tried with both a binarised image and just the raw image (12 bit Tiff)
The size of my image is 300x300 pixels.
This was my attempt, - but its failing to find any circles.
IM=getimage(app.UIAxes2);
figure
ax1=subplot(1,3,1);
myImagesc(app,ax1,IM); %My version of ImageSc (i.e. force colormap gray)
%Binarize if required
mn=mean2(IM)
th=mn*0.5
% IM(IM<th)=0;
% IM(IM>=th)=1;
ax2=subplot(1,3,2);
myImagesc(app,ax2,IM);
%Find Circles
[centers, radii, metric] = imfindcircles(IM,[15 400],'ObjectPolarity','dark') %I've also tried "bright"

Image Analyst on 17 Jan 2023
Just threshold, call imclearborder, and then regionprops, asking for EquivDiameter. Let me know if you can't figure it out.
Image Analyst on 17 Jan 2023
So I take it that you want the white spot inside the black disc, but there may or may not be a white spot present, right?
Is there always just one bubble/drop inside the black disc? Is there a minimum size they/it will be? Like anything smaller than 100 pixels is noise? What I'd do is something like this
mask = imfill(mask, 'holes'); % In case there are any black specks inside the white drop.
if ~isempty(props)
xCenter = props.Centroid(1);
yCenter = props.Centroid(2);
viscircles([xCenter, yCenter], props.EquivDiameter, 'Color', 'r');
end
Jason on 17 Jan 2023
Thanks

### Categories

Find more on Region and Image Properties in Help Center and File Exchange

R2022b

### Community Treasure Hunt

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

Start Hunting!