plot of differernt regions of specific area in a matrix

1 view (last 30 days)
I wonder where in the follwing code i can add a condition which i can have the same plot but for regions (connected pixels) which have more than 10 pixels? I really apperciate your help.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 23 Jun 2011
Hi Hassan! Try this code:
L = bwlabel(m2 == 2);
lns = 1:max(L(:));
ln = regionprops(L, 'Area');
pm1 = find(ismember(L(:),lns([ln(:).Area]>=10)));
lidx = sortrows([L(pm1) pm1],1);
dplt = mat2cell([(1:size(lidx,1))' m1(lidx(:,2))],...
arrayfun(@(i1)nnz(lidx(:,1)==i1),unique(lidx(:,1))) ,ones(1,2));
n = size(dplt,1);
k=reshape('ymcrgbwk+o*.xv^>--------',[],3);
dplt2 = [dplt mat2cell([repmat(k,fix(n/8),1);k(1:rem(n,8),:)],ones(n,1),3)]';
plot(dplt2{:})
  2 Comments
Hassan
Hassan on 24 Jun 2011
Another question. I want to make the same plot but for the mean value of each region. I wrote the following code which works. However, I want to show the color of each mean value with the same color was used in the above code for each region.
STATS = regionprops(L,m1,'MeanIntensity','Area','PixelValues');
n_stats = size(STATS,1);
mean_=zeros(n_stats,1);
[m_,n_] = find(cat(1,STATS.Area) >=10);
for i=1:n_stats
mean_(i)=STATS(i,:).MeanIntensity;
end
mean1=mean_(m_);
figure
plot(mean1)

Sign in to comment.

More Answers (0)

Categories

Find more on Line Plots in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!