# Diameter of Almost circular objects and degree of circularity

조회 수: 8 (최근 30일)
Jason 2023년 1월 17일
댓글: Jason 2023년 1월 17일
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 2023년 1월 17일
Just threshold, call imclearborder, and then regionprops, asking for EquivDiameter. Let me know if you can't figure it out.
##### 댓글 수: 5이전 댓글 3개 표시이전 댓글 3개 숨기기
Image Analyst 2023년 1월 17일
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 2023년 1월 17일
Thanks

댓글을 달려면 로그인하십시오.

### 카테고리

Help CenterFile Exchange에서 Region and Image Properties에 대해 자세히 알아보기

R2022b

### Community Treasure Hunt

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

Start Hunting!

Translated by