MATLAB Answers

3-d plot

2 views (last 30 days)
Hassan on 17 Dec 2011
I have two matrixes: I is a grayscale image and BW is the binary image. for the regions that have area>50 in BW, I want to calculate the mean value of the those regions in I. I then want to show these mean values for each region as bar plot on the grayscale. Any suggestion?
I used the following code to show the mean value of each region on the image but dont know how to show them as bar.
% create a synthetic image
I = propsSynthesizeImage;
%a create binary image
BW = I >0;
%find the centroid of each region
s = regionprops(BW, I, {'Centroid'});
title('Weighted (red) and Unweighted (blue) Centroid Locations');
hold on
numObj = numel(s);
%plot the centeroid of each region on the image
for k = 1 : numObj
plot(s(k).Centroid(1), s(k).Centroid(2), 'bo');
hold off
s = regionprops(BW, I, {'Centroid', 'PixelValues', 'BoundingBox'});
title('Standard Deviation of Regions');
hold on
%calculate the mean value of each region and plot them on the image
for k = 1 : numObj
s(k).Mean= mean(double(s(k).PixelValues));
text(s(k).Centroid(1),s(k).Centroid(2), ...
sprintf('%2.1f', s(k).Mean), ...
hold off
Hassan on 17 Dec 2011
thanks Walter for the command. I did some changes in the format but Im not sure if they were what you meant.

Sign in to comment.

Answers (0)


Community Treasure Hunt

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

Start Hunting!