2013-10-19 42 views
1

我有一個問題,我需要將圖像分塊,併爲每個塊添加零邊框,一個或兩個零就足夠了,我爲所有圖像添加了邊框,但是我想爲每個圖像塊添加邊框。如何將圖像分塊,併爲每個塊添加零邊框

筆記:::沒有任何的塊大小爲恩:4X4塊

img=round(100*rand(4,4)); 
[n,m]=size(img); 
x=zeros(n+2,m+2); 
%%%%%Applying zero padding to the image 
for i=1:n+2 
    for j=1:m+2 
     if i==1 || i==n+2 || j==1 || j==m+2 
      x(i,j)=0; 
     else 
      x(i,j)=img(i-1,j-1); 
     end 
    end 
end 
x 

我需要輸出這樣圍繞每個塊一個或兩個零

0  0  0  0 0 0  0 0 
0 84 80  0 0 65 85 0 
0 29 19  0 0 23 77 0 
0  0  0  0 0 0  0 0 
0  0  0  0 0 0  0 0 
0 84 80  0 0 66 74 0 
0 29 19  0 0 36 80 0 
0  0  0  0 0 0  0 0 
+0

我有不知道爲什麼你刪除並轉發了這個問題。請明確預期的輸出應該如何。 同樣:第二行應該看起來像是「0xx0xx0」還是「0xx00xx0」?如果在兩者之間應該有一個或兩個分隔符,則邊界不明確。 – Daniel

+0

我刪除並添加原因我試圖編輯它後刪除和添加我看到編輯按鈕 –

+0

0xx0xx0更好 –

回答

2
%n: Size of original matrix 
n=size(img,1) 
%prealloc new matrix 
img2=zeros(n+3,n+3) 
%p indicates indices to store img at 
p=[(2:n/2+1),(n/2+3:n+2)] 
%Copy img to the correct positions 
img2(p,p)=img 
+0

感謝親愛的丹尼爾爲您的幫助完全我需要再次感謝 –

+0

是正確的,但是,如果我將圖像的大小更改爲256x256? –

+0

感謝Luis Mendo爲您編輯 –