我想知道如何计算任意奇数内核(二阶导数)的拉普拉斯掩模。例如,我知道3x3将是:
1 1 1
1 -8 1
1 1 1
5x5面具将是:
1 1 1 1 1
1 1 1 1 1
1 1 -24 1 1
1 1 1 1 1
1 1 1 1 1
然而,这就是我所知道的。我不知道这些是如何计算的。我相信所有二阶导数掩模总是有一个不同的中心数,被1s包围。我的问题是,如何计算nxn的中心数,其中n是奇数? (例如7x7,15x15等)我计划在Matlab中实现它。我感谢任何帮助。
答案 0 :(得分:4)
拉普拉斯函数看起来像这样:
并描述为:
σ
这里决定倒钟的传播。数字掩模是该功能的离散近似。因此,对于较小的窗口大小值(n
)和σ
,您会得到一个大的负数,全部被1包围。但是当你增加窗口大小和σ
时,情况并非如此。
要正确计算数字遮罩,您应该使用上面给出的功能。您奇数大小的正方形(nxn
)的中心像素将成为您的原点。
答案 1 :(得分:3)
这是一个简单的方法:
function mask = LapMask(n)
mask = ones(n);
mask(ceil((n^2)/2)) = 1 - n^2;
end
我会留给你添加错误检查,确保n
是奇数