如何计算拉普拉斯掩模或任何大小

时间:2013-10-17 08:46:58

标签: matlab image-processing filter mask

我想知道如何计算任意奇数内核(二阶导数)的拉普拉斯掩模。例如,我知道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中实现它。我感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

拉普拉斯函数看起来像这样:

Source: homeepages.inf.ed.ac.uk/rbf/HIPR2/log.htm

并描述为:

enter image description here

σ这里决定倒钟的传播。数字掩模是该功能的离散近似。因此,对于较小的窗口大小值(n)和σ,您会得到一个大的负数,全部被1包围。但是当你增加窗口大小和σ时,情况并非如此。

要正确计算数字遮罩,您应该使用上面给出的功能。您奇数大小的正方形(nxn)的中心像素将成为您的原点。

供参考:http://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htm

答案 1 :(得分:3)

这是一个简单的方法:

function mask = LapMask(n)
    mask = ones(n);
    mask(ceil((n^2)/2)) = 1 - n^2;
end

我会留给你添加错误检查,确保n是奇数