2014-01-19 17 views
0

我們想使算法爲了使運動估計步驟空間均勻性

(average) Md=1/(N^2-K) ∑||(x,y)-S(x,y)|| 

其中N是塊,S(X,Y)的大小是在最接近於該像素的所選像素的位置 位置(x,y) 並且K是所選像素的數量。降低μd和σ2d的值 ,則採樣點的空間均勻性就越大。

對於K=9 我寫這個算法的matlab代碼。我沒有發現有什麼錯碼

for i=2:1:a-1 
    for j=2:1:b-1 
     S=blok(i-1:i+1;j-1:j+1); 
     sum=sum+abs(blok(i,j)-S(i,j)); 
    end 
end 
Md =double(sum/((a*b)-9)); 
+0

1.什麼是「blok」? 2.什麼是'a'和'b'? 3. **從不**使用'sum'作爲變量名稱。它是一個內置函數,覆蓋它只會導致錯誤。 4.什麼不起作用?任何錯誤消息? 5.您可以給出樣本輸入變量以及您希望函數返回這些值的內容嗎? –

+0

輸入是塊16x16.block = 16x16(一塊圖片)axb = 16x16感謝您的建議@Robert P. – 12345

+1

看看'blockproc'。 –

回答

0

輸入是16×16塊的塊 = 16×16(個圖像的)

我發現S(X,Y),使得內核[1 1 1; 1 1 1; 1 1 1]與塊的卷積

for i=1:1:14 
    for j=1:1:14 

    for m=-1:1 
     for n=-1:1 
      S(i+1,j+1)=S(i+1,j+1)+kernel(m+2,n+2).*blok(i-m+1,j-m+1); 
     end 
    end 
    % S=blok(i-1:i+1;j-1:j+1); 

    total=total+abs(blok(i+1,j+1)-S(i+1,j+1)); 


    end 
end 

它似乎現在工作,但我不知道。