plot of differernt regions of specific area in a matrix

1 vue (au cours des 30 derniers jours)
Hassan
Hassan le 23 Juin 2011
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.

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 23 Juin 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 commentaires
Hassan
Hassan le 24 Juin 2011
thanks a lot Anrei.
Hassan
Hassan le 24 Juin 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)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Graphics Performance dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by