【发布时间】:2012-09-10 13:49:58
【问题描述】:
谁能解释为什么我在使用 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 ]
而 xx + yy 的内块 (3:6, 3:6) 是:
[-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 ]
如您所见,这将对任何进一步的方程式产生巨大影响。谁能解释一下,非常感谢!
【问题讨论】:
-
你的变量'image'代表什么功能?
-
是通过imread()加载的图片。
-
看源码了吗? “类型 del2”,“类型渐变”
-
它们都可以被带入编辑器。我可以花一整天的时间来区分这些差异,但我认为有人可能会有一个概念性的解释。
-
什么戏剧效果?请说明!我只是在边缘有一些失真。用于测试的函数:
z=X.^2.*Y
标签: matlab image-processing operators gradient