2013-08-23 24 views
0

點列表如何轉換爲二進制矩陣?希望該操作能夠適用於640x640圖像。這裏是一個例子:在matlab中,如何將點列表轉換爲二進制矩陣

% the points 
p = [2 2;2 3;3 3] 

% the images is 4x4 
img=zeros(4,4) 

% set img to 1 for all points in p 

???這是個問題嗎?

%產生的二進制圖像 IMG =

0  0  0  0 
0  1  0  0 
0  1  1  0 
0  0  0  0 

回答

0

這個怎麼樣:

linearInd = sub2ind(size(img), p(:,2), p(:,1)); 
img(linearInd) = 1; 
+0

這兩個答案都是一樣的。我不知道一個圖像可以通過線性索引來設置。謝謝! –

0

你可以簡單地做:

img(sub2ind(size(img), p(:,2), p(:,1))) = 1; 

例如:

p = [2 2;2 3;3 3]; 
img = zeros(4,4); 

img(sub2ind(size(img), p(:,2), p(:,1))) = 1 

這將使你:

img = 

    0 0 0 0 
    0 1 0 0 
    0 1 1 0 
    0 0 0 0