MATLAB Answers


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
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);
plot(boundary(:,2), boundary(:,1), 'r','LineWidth',2);
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.


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.


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.
Use polyarea(x, y)
area = polyarea(x, y);

Sign in to comment.