"regionprops" detecting one line only

4 views (last 30 days)
If anyone can identify why I am getting width of one line only.
L1 = bwlabel(s);
vislabels(L1)
k=regionprops(L1,'Area','Perimeter','Centroid');
score= (([k.Area])/([k.Perimeter]/2))
figure, imshow(s);
morespace=10;
for cnt = 1:width(k)
text(k(cnt).Centroid(1),k(cnt).Centroid(2)+morespace,...
num2str(score(cnt))+" sq cm",'FontSize',12,'color','red');
end
s.mat is attached. Kindly advise.

Accepted Answer

Simon Chan
Simon Chan on 6 Jun 2022
load('s.mat')
L1 = bwlabel(s);
%vislabels(L1); % Ignore the user created function
k=regionprops(L1,'Area','Perimeter','Centroid');
score= (([k.Area])./([k.Perimeter]/2)); % Use ./ instead of /
figure, imshow(s);
morespace=10;
for cnt = 1:length(k) % Use length instead of width
text(k(cnt).Centroid(1),k(cnt).Centroid(2)+morespace,...
num2str(score(cnt))+" sq cm",'FontSize',12,'color','red');
end

More Answers (0)

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!