2014-01-19 19 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 

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