创建拉普拉斯矩阵,过滤图像

时间:2013-02-07 23:12:44

标签: c++ math image-processing

我正在做一个实现图像过滤器的项目。 我的问题是,用户说在图像中应用拉普拉斯过滤器,内核是nxn大小。 我知道laplace使用以下矩阵3x3:

0  1  0

1 -4  1

0  1  0

但如果他想要一个nxn矩阵我该如何创建呢?

1 个答案:

答案 0 :(得分:4)

调用图像处理中的“拉普拉斯滤波器”,因为您可以从图形上的离散拉普拉斯算子的正式定义中精确地导出它。这种方法导致两个卷积内核立即有意义,

1  1  1
1 -8  1
1  1  1

0  1  0
1 -4  1
0  1  0

,取决于您是否将对角相邻的像素视为邻居。

你当然可以使用其他矩阵作为卷积核(卷积的工作方式完全相同,操作与矩阵维无关),但那些不再是“拉普拉斯算子”。你可以计算出更接近其他连续算子的更大卷积核,但是对于nxn拉普拉斯矩阵没有一个“正确的定义”。

要么依赖用户输入并信任用户为您的目的输入合理的内核,要么研究如何近似其他运算符。这里给出了拉普拉斯高斯近似的一个例子:http://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htm