Calculating perimeter of object!
21 次查看(过去 30 天)
显示 更早的评论
Hi Folks,
So, I want to calculate the perimeter of an object. I have posted an image to this question. I wrote a short script - which I found on Mathworks - to trace the object of interest with a green trace. I was wondering if I can calculate the perimeter of this object. The perimeter measurement would be acquired first in number of pixels, and then I would convert that number into a physical SI measurement using a value I have written down.
My question is... How would I go about this? Also, would tracing the perimeter of the object, as I have done, help? Or, does tracing just serve to be a visual aid?
Here is the figure. The green is obviously the trace of the perimeter. In advance, thank you for reading through this!
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/157285/image.png)
0 个评论
采纳的回答
Walter Roberson
2016-10-20
5 个评论
Image Analyst
2016-10-22
编辑:Image Analyst
2016-10-22
regionprops can handle multiple regions by returning a structure array:
props = regionprops(labeledImage, 'Area', 'Perimeter');
allAreas = [props.Area];
allPerimeters = [props.Perimeter];
To get the outlines as an array of (x,y) coordinates, use bwboundaries() and then use plot() to plot them all over the original image, like this snippet:
% bwboundaries() returns a cell array, where each cell contains the row/column coordinates for an object in the image.
% Plot the borders of all the regions on the original grayscale image using the coordinates returned by bwboundaries.
imshow(originalImage);
title('Outlines, from bwboundaries()', 'FontSize', captionFontSize);
axis image; % Make sure image is not artificially stretched because of screen's aspect ratio.
hold on;
boundaries = bwboundaries(binaryImage);
numberOfBoundaries = size(boundaries, 1);
for k = 1 : numberOfBoundaries
thisBoundary = boundaries{k};
plot(thisBoundary(:,2), thisBoundary(:,1), 'g', 'LineWidth', 2);
end
hold off;
更多回答(1 个)
nikhil agrawal
2016-10-20
Go back to the mask without the green traced in and use regionprops() and Ask for Perimeter.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Computer Vision with Simulink 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!