MATLAB Answers

0

How to measure dimensions of region boundary plot?

Asked by Mohsina Zafar on 11 Dec 2017
Latest activity Commented on by Image Analyst
on 1 Apr 2018
Hello,
I have an image (from MATLab example) and I want to know the number of pixels in/dimensions of the green boundary. As according to the code, the green boundary is overlaid on the image and is not a part of the image, I am unable to calculate its length or the number of pixels it has.
BW = imread('blobs.png');
Calculate boundaries.
[B,L,N] = bwboundaries(BW);
Display object boundaries in red and hole boundaries in green.
imshow(BW); hold on;
for k=1:length(B),
boundary = B{k};
if(k > N)
plot(boundary(:,2), boundary(:,1), 'g','LineWidth',2);
else
plot(boundary(:,2), boundary(:,1), 'r','LineWidth',2);
end
end
I want to make the green boundary a part of the image so that I can count its number of pixels too. Or any other way to do just that (measure the length of the green region).
Please help me in this regard.
Regards.

  0 Comments

Sign in to comment.

1 Answer

Answer by Image Analyst
on 12 Dec 2017
 Accepted Answer

Just get the size of boundary in the loop:
numPixels(k) = size(boundary, 1); % Count rows.

  3 Comments

Thank you. This is exactly what I needed.
How could it be possible to get the area of the detected boundary? I am particularly interested in calculating the area to length ratio of all detected boundaries.
Thanks
Use polyarea(x, y)
area = polyarea(x, y);

Sign in to comment.