Matlab的DEL2和梯度的梯度Matlab的差异之间(Discrepancy between M

2019-10-17 05:34发布

任何人都可以解释为什么我得到这样的显着不同的结果在Matlab拉普拉斯算子,当我使用

laplacian = del2(image);

[x, y] = gradient(image);
[xx, xy] = gradient(x);
[yx, yy] = gradient(y);
laplacian = xx + yy;

如果没有这些得出了同样的事情? 他们得到特别是发散时,一个包括DX项。

把我的例子在这里的情况下,它可以帮助:我有一个测试场由

 [5; 2.5+2.5i; 5i; -2.5+2.5i; -5; -2.5-2.5i; -5i; 2.5-2.5i] 

倍其转(我可以张贴整个矩阵,如果有帮助)。 内部块这个字段的DEL2()(3:6,3 6)为:

[-2.5           -0.625-0.625i  -2.5i           0.625-0.625i ;
 -0.625+0.625i   0             -0.625+0.625i   0            ;
  2.5i          -0.625+0.625i  -2.5           -0.625+0.625i ;
  0.625+0.625i   0             -0.625+0.625i   0            ] 

而内部块(3:6,3:6)的XX + yy是:

[-5             -2.5-2.5i      -5i            -2.5-2.5i     ; 
 -2.5+2.5i      -2.5           -2.5-2.5i      -2.5i         ; 
  5i            -2.5+2.5i      -5             -2.5-2.5i     ; 
  2.5+2.5i       2.5i          -2.5+2.5i      -2.5          ]

正如你可以看到会在任何进一步的方程的显着差异。 可能人有一个解释,非常感谢!

Answer 1:

如果您在Matlab的文档,F在(X,Y),DEL2(F(X,Y))的拉普拉斯只用(X,Y)的计算和其最近的邻居仔细一看:X + 1,X-1 ,Y + 1,Y-1。

这同样适用于梯度函数(和发散,其明确地使用梯度函数)。 计算梯度两次涉及到的近邻的最近的邻居。 因此DIV(研究所(F(X,Y))是用(X,Y)和x + 2实际计算中,x-2,Y + 2,Y-2。因此,差异。

网格间距的越大,这两个计算之间的差异就越大。



Answer 2:

正如可以在上看到DEL2的文档 ,它的不同之的因子1/4与梯度你相比它方法。

这也部分解释了在你的榜样因子4。 我责怪其余的边缘效应:P



文章来源: Discrepancy between Matlab del2 and Matlab gradient of gradient