在图像处理中平均掩模和拉普拉斯掩模

时间:2011-06-13 00:12:50

标签: matlab image-processing noise-reduction image-enhancement

在给定的应用中,我应用平均掩模输入图像以减少噪声,然后使用拉普拉斯掩模来增强小细节。如果我在Matlab中颠倒这些操作的顺序,任何人都知道我是否会得到相同的结果?

3 个答案:

答案 0 :(得分:8)

与拉普拉斯算子内核相似,类似于使用关于强度变化的二阶导数信息。由于此导数对噪声很敏感,因此我们经常在应用拉普拉斯滤波器之前用高斯光滑平滑图像。


这是一个类似于@belisarius发布的MATLAB示例:

f='http://upload.wikimedia.org/wikipedia/commons/f/f4/Noise_salt_and_pepper.png';
I = imread(f);

kAvg = fspecial('average',[5 5]);
kLap = fspecial('laplacian',0.2);

lapMask = @(I) imsubtract(I,imfilter(I,kLap));

subplot(131), imshow(I)
subplot(132), imshow( imfilter(lapMask(I),kAvg) )
subplot(133), imshow( lapMask(imfilter(I,kAvg)) )

enter image description here

答案 1 :(得分:7)

假设您有两个过滤器F1F2,以及一个图片I。如果您通过两个过滤器传递图像,则会得到定义为

的响应
X = ((I * F1) * F2)

我在这里使用*代表convolution

通过卷积的关联规则,这与。相同。

X = (I * (F1 * F2))

使用交换性,我们可以说

X = (I * (F2 * F1)) = ((I * F2) * F1)

当然,这是一个很好的连续数学领域,在机器上做这些事情意味着会出现舍入错误,一些数据可能会丢失。您还应该考虑过滤器是否为FIR,否则将数字过滤视为卷积分类的整个概念开始崩溃,因为过滤器无法按照您希望的方式运行。


修改

离散卷积定义为

conv2 uses a straightforward formal implementation of the two-dimensional convolution equation in spatial form

因此,在数据边缘添加零不会改变数学意义上的任何内容。

正如一些人所指出的那样,你将在数字上得到不同的答案,但每当我们处理计算实际数据时,这都是预期的。这些变化应该很小,并且限于卷积输出的低能量分量(即边缘)。

考虑卷积操作如何工作也很重要。汇总长度为X和长度为Y的两组数据将得出长度为X+Y-1的答案。对于像MATLAB和Mathematica这样的程序,幕后有一些魔术可以给你一个长度为XY的答案。

关于@belisarius的帖子,看起来我们真的在说同样的话。

答案 2 :(得分:3)

数字上的结果并不相同,但图像看起来非常相似。

Mathematica中的示例:

enter image description here

修改

作为@thron评论中有关线性滤波器和填充换向的答案的答案,请考虑以下操作。

虽然没有填充的高斯和拉普拉斯滤波器的换相是正确的:

list = {1, 3, 5, 7, 5, 3, 1};
gauss[x_] := GaussianFilter[ x, 1]
lapl[x_] := LaplacianFilter[x, 1]
Print[gauss[lapl[list]], lapl[gauss[list]]]
(*
->{5.15139,0.568439,-1.13688,-9.16589,-1.13688,0.568439,5.15139}    
  {5.15139,0.568439,-1.13688,-9.16589,-1.13688,0.568439,5.15139}
*)

对填充执行相同操作会导致边缘不同:

gauss[x_] := GaussianFilter[ x, 1, Padding -> 1]
lapl[x_] := LaplacianFilter[x, 1, Padding -> 1]
Print[gauss[lapl[list]], lapl[gauss[list]]]

(*
->{4.68233,0.568439,-1.13688,-9.16589,-1.13688,0.568439,4.68233}
  {4.58295,0.568439,-1.13688,-9.16589,-1.13688,0.568439,4.58295}
*)