2016-01-25 103 views
1

我必須以(x,y)的形式存儲矩陣中圖像像素的座標。 我想要的代碼是:在矩陣中存儲像素座標

[x,y]=size(diff_im); 
count=0; 
for i=1:x 
    for j=1:y 
     if a(i,j)==0 
      count=count+1; 
      new_x(count)=j; 
      new_y(count)=i; 
     end 
    end 
end 

目前我儲存的X和Y在不同的陣列。但我想知道如何將x,y值存儲在單個矩陣中。

+0

你的問題被retreived是相當不清楚。 'x'和'y'是標量。你的意思是你想'new_x'和'new_y'是一個矩陣嗎?你能準確描述你想要做什麼以及你想要什麼輸出嗎? – Dan

+2

這裏的兩個矩陣的大小爲'x * y',你期望的矩陣大小是多少? new_x(new_y)= meshgrid(1:x,1:y); new_x(a〜= 0)= 0; new_y(a〜= 0)= 0; ' – flawr

+0

據我瞭解你的問題,你只是想使用'new_xy(count,:) = [ji];'來將你的值對存儲在一個數組的行或'new_xy(:,count)= [焦耳;我];'將它們存儲在列中。 – Max

回答

1

如果您只需要一個數組,其中每行都是a中爲0的像素的x/y座標,則可以使用find,後跟一個連接。

[new_y, new_x]=find(a==0); %// x/y are now correct for plotting onto an image 
new_xy = [new_x,new_y]; 
0

我不完全確定你想要什麼。如果你想要的是存儲的新座標夫婦在一個矩陣,你可以做一些非常基本的,如:

[x,y]=size(diff_im); 
count=0; 
for i=1:x 
    for j=1:y 
     if a(i,j)==0 %what is this line?? 
      count=count+1; 
      A(count,1)=j; 
      A(count,2)=i; 
     end 
    end 
end 

每個新對COORDS可以再通過A(i,:)