how to divided n matrix to PA and PT?

1 次查看(过去 30 天)
BANI tita
BANI tita 2012-10-17
hi, I have a matrix divided into two groups A and B point, I have mask of A and B, my question is how to divided n matrix and putting points in Group A in a vector and points of B in the other this program gives me only the results of the first matrix (t = 1)
%--------------------------------
for t=1:220
PAA=[];
PTT=[];
m=Im(:,:,t); % image de 220 bandes
m=m(:);
ff=masquePA;
ff=ff(:);
PAA= [PAA;nonzeros(m.*ff)];
bb=masquePT;
bb=bb(:)
PTT=[PTT;nonzeros(m.*bb)]
end
%---------------------------------

回答(1 个)

Image Analyst
Image Analyst 2012-10-17
Well it must be because nonzeros(m.*bb) is null. And the only way that can happen is if masquePT is all 0 or m is all 0, or each is zero where the other has some non-zero values. Make a mask for PT, masquePT, that has some non-zero values in it. Then, make sure your channels 2-220 of m have non-zero values in it at the same places where your mask has non-zero values. Then PTT will have some values in it.
  5 个评论
Image Analyst
Image Analyst 2012-10-17
编辑:Image Analyst 2012-10-17
OK, they're different. That's bad. Do the same thing for masquePA and masquePT so we can see which mask is not the same size as the image. But 145*145 = 21025, so after each iteration, the vectors should grow by 21025. Why are they not doing that? If you multiply a mask by an image, they MUST be the same size.
BANI tita
BANI tita 2012-10-17
it gives me
size(masquePA)
>> 145 145
size(masquePT)
>>145 145
it has the same size of a single band

请先登录,再进行评论。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by