how to calculate perimeter on RGB picture??
Afficher commentaires plus anciens
Hello everyone!
I would like to ask for your help, once again!
In my project, I have to draw a circumference on a RGB picture, and calculate the intensity of that picture within that circumference (circle) and ON the circumference. The circle part, I can do it, but on the circumference not.
The issue is that, if the radius it's not an integer, the function does not count with the decimal part. Here's a picture to illustrate my issue.
Thanks!!!
BR,
BS.
Réponses (2)
Image Analyst
le 1 Août 2013
0 votes
I don't know what "The circle part, I can do it, but on the circumference not." means. Do you have the coordinates of the outside perimeter (circumference) of the circle? If so, use poly2mask to create a binary image from it, then call regionprops and ask for MeanIntensity. It's like 2 lines of code.
4 commentaires
BSantos
le 1 Août 2013
Image Analyst
le 1 Août 2013
% Create a logical image of a circle with specified
% diameter, center, and image size.
% First create the image.
imageSizeX = 640;
imageSizeY = 480;
[columnsInImage rowsInImage] = meshgrid(1:imageSizeX, 1:imageSizeY);
% Next create the circle in the image.
centerX = 320;
centerY = 240;
radius = 100;
circlePixels = (rowsInImage - centerY).^2 ...
+ (columnsInImage - centerX).^2 <= radius.^2;
% circlePixels is a 2D "logical" array.
% Now, display it.
image(circlePixels) ;
colormap([0 0 0; 1 1 1]);
title('Binary image of a circle');
Then you calculate the mean intensity of the pixels within the circle like this:
meanWithinCircle = mean(grayImage(circlePixels));
Image Analyst
le 1 Août 2013
Responding to your Answer, if "within that circumference" actually means "on the perimeter" rather than "anywhere within the entire disk" then you can use the faq to get the perimeter pixels only, rather than a solid disc. Then use the same code. Nothing I gave in the code above is in the Image Processing Toolbox.
BSantos
le 2 Août 2013
BSantos
le 1 Août 2013
0 votes
Catégories
En savoir plus sur Labels and Annotations dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!