如何计算拉普拉斯面罩或任何大小

ter*_*rry 4 matlab mask image-processing filter laplacian

我想知道如何计算任意奇数大小内核(二阶导数)的拉普拉斯面罩。例如,我知道3x3将是:


1  1  1
1 -8  1
1  1  1
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

但是,这就是我所知道的。我不知道这些是如何计算的。我相信所有二阶导数掩码都始终具有不同的中心数字,并由1包围。我的问题是,如何计算n为奇数的nxn的中心数?(例如7x7、15x15等),我正计划在Matlab中实现此功能。感谢您能提供的任何帮助。

Pap*_*ouh 6

拉普拉斯函数如下所示:

资料来源:homeepages.inf.ed.ac.uk/rbf/HIPR2/log.htm

由以下描述:

在此处输入图片说明

?此处确定倒钟的传播。数字掩码是该函数的离散近似值。因此,对于较小的窗口大小(n)和?,您会得到一个较大的负数,其周围始终带有1s。但是随着您增加窗口大小和?,事实并非如此。

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

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

  • 不,LoG不是拉普拉斯函数,它是“高斯拉普拉斯算子” =用拉普拉斯算子进行高斯平滑,请参见链接... (5认同)

Dan*_*Dan 5

这是一个简单的方法:

function mask = LapMask(n)
    mask = ones(n);
    mask(ceil((n^2)/2)) = 1 - n^2;
end
Run Code Online (Sandbox Code Playgroud)

我将让您添加错误检查以确保这n是奇怪的

  • @terry - 您可能仍然需要使用不同的公式。这只是二维拉普拉斯算子的一​​种离散近似,但这正是您所要求的。例如,“fspecial('laplacian',alpha)”根据您指定的 alpha 值给出不同的结果。 (3认同)