plot of differernt regions of specific area in a matrix

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.

 Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 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 Kommentare

thanks a lot Anrei.
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)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by