数字图像处理(冈萨雷斯第三版)学习笔记 - Chapter 3 Spatial Processing(2)

一、非局部平均(non-loacal means)

正如上节看到的,局部平均有着某种非常有趣的数学特性,但是我们同时也看到这会导致图像中的内容变模糊,边缘变模糊。所以,我们该怎么解决这个问题呢?

我们有几种思路,一种是用不同的局部运算来代替局部平均,而另外一种是这样的,我们可以先问问自己,我们只局限于对局部邻域求平均吗? 或许我们可以选择一个更好的求平均的方法 。记住平均就像热量的流动,那么我们应该是在最大和最小的像素值之间取平均 ,还是只对相似的像素点求平均,并且不对相差很大的像素点求平均,
在这里插入图片描述
现在我们来介绍一个简洁的方法,它就是非局部均值算法。与在局部邻域求平均不同,我们将在整个图像中求平均,一起来看看为什么能这样做,以及如何才能做到这点。观察上图,我们能看到图像里有些局部领域非常相似,用方框框出,有时候这些被称为图像的自相似性。因此 我们之前只平均一块邻域的的像素,也许我们应该平均所有相似的局部邻域。

所以,非局部均值基本思路是尝试去平均某些相似的局部邻域,并利用它们的特性,而不是限定在一个局部邻域里。那么我们为什么要这么做呢? 如果我们假设这些是相同的东西,有着相同的结构,但是或许有不同的噪声。一起来看看这种假设的效果,现在假设有某个像素P,它是无噪的像素和噪声相加的结果,而这个噪声是一个随机变量,因此结果总会有稍稍的不同,所以,我们可以多次观察这个像素。我们观察到 P1 叠加了某一噪声,记作P1 = P0+N1 ,我们再次观察同一像素,但是叠加了不同的噪声,记作P2 = P0+N2。我们可以观察多次,比如说观察了n次,每次都是相同的像素+不同的噪声。如果我们把这些P1~Pn做个平均,由数学可以证明,噪声以n的平方成比例下降。我们对越多像素值求平均,噪声减少得越多

那么我们怎么做呢? 基本思路就是,首先找相似的邻域,然后求平均值。如果我想替换一像素, 可以根据它的邻域来寻找近似的邻域,然后用近似邻域的中心像素的均值来替换它。那怎样寻找近似邻域呢? 有专门讨论非局部均值的文献,其中包括两部分,第一部分是怎样找到相似邻域,找出它们之后,第二部分就是如何求得均值。这时可以采用加权平均处理它们,或者也可以推演出它们之间不同的关系,但总体最简单的做法是通过比较来寻找邻域, 扫描整个图像 ,看看哪些与这个邻域相似,通过比较对象之间的均方误差,你会找到一组邻域。然后就可以利用每个邻域的中心像素,用它们的均值来替换原像素,

这个只是一个例子,你还可以用不同的方法寻找相似的邻域。并且一旦你找到它们,除了计算均值,还可以用其它的函数关系进行计算,这与仅仅在邻域内计算均值并以此代替像素不同。我们目前是用一种方法去衡量相似性,在整个图像中寻找相似的邻域,而一旦找到这些邻域,就可以结合它们,用刚才所讲的概念对这个像素降噪。

这里推荐一个网站,上面有很多关于图像处理的算法并且开源源码,可以免费下载。还有算法的在线演示功能。www.ipol.im。例如非局部平均的算法就可以在这个网站上找到。

二、中值滤波(Median filter)

现在回到局部滤波部分,我们要介绍另一个非常重要并且用途广泛的局部滤波器,那就是中值滤波器。接下来我们将对其进行讲解,这是一种很棒的滤波器,因为它不会使边缘变得模糊不清。在正式讲解中值滤波器之前,先来看一个实物图像的例子,下图a是一幅被椒盐噪声污染的图像,下一章会进一步讲解不同的噪声模型,现在先记住这种类型。椒盐噪声是一种比较剧烈的噪声,分别加在各个像素上。图b这是局部均值滤波的结果,就是一个 3×3 的局部平均。可以观察到,是有一些噪声的减少,但并不是很多。我们可以通过一个比 3×3 大的局部均值滤波器来过滤掉更多的噪声,像 5×5 或者 9×9 ,但是 如果增大滤波时的邻域,有很多细节都被模糊了。而再看图c,这是3×3 中值滤波的结果。可以观察到一个很好的效果,并没有出现模糊,大多数的噪声的确都被滤掉了。所以用一个 3×3 邻域的中值滤波器就能够达到很好的去噪效果。
在这里插入图片描述
那么什么是中值滤波器呢? 很简单,如果选取一个 3×3 的领域,将这个模板里的所有像素按照从小到大的顺序排列,然后用排在最中间的那个值代替了待处理的像素点。在排序的时候,噪声往往会被排在两边,就这样,噪声就被清除掉了。也没有出现之前在高斯滤波或者均值滤波中的模糊的效果。因此,中值滤波器是一种非常简单的滤波器,只需排序,然后挑选出最中间的元素,然后移到下一个窗口。需每次处理一个 3×3 的窗口,然后移到下一个窗口处理,以此类推。

然后我们再来看一下中值滤波器的一个很有趣的性质。在上一节中,已经了解到均值滤波器按 sum[(a-ai)^2 ]的方式来减少噪声,当a取均值时,它使得这个式子取最小值。那么对于均值滤波,也可以写成 f(a-ai) 这样的函数,中值可以使得 sum[ | a-ai | ]取得最小值。对于熟悉统计领域的人而言,可以这样理解。平方误差的鲁棒性并不太强,所以均值滤波会有模糊。而相比之下绝对值误差鲁棒性比刚才的强,这也是中值滤波能够完全消除像椒盐噪声之类噪声的原因,而不使图像其它部分模糊。

关于中值滤波还有一个有趣的性质。在均值中,得到的结果可能并不是模板中的某个像素值,举个例子,如果算 1 和 2 的均值,得到的是1.5,既不是1 也不是2。因此在均值滤波中,也许就用一个图像中根本没有出现过的值代替了这个像素。从这个角度而言,当进行中值滤波的时候,总是用一个在 3×3 的窗口中存在的值来进行替换,并没有新值出现。

三、求导、拉普拉斯算子 与 反锐化掩膜(Derivatives, Laplacian & Unsharp masking)

在这里插入图片描述
首先,说说我们如何对邻域求导数。上图a是这是一幅一维的图像的一行灰度值,可以看出先是平的,然后下降,再是平的,接着陡升,然后又是平直的。在对它求一阶导数、二阶导数后的图形会变成图b那样。

本身求导应该是在连续性条件下的运算,而在电脑上,如果我想要对一幅图像在 x方向进行求导的话,我只要用离散的形式写成 f(x+1) - f(x)。如果我想对邻域进行操作的话,假设是一个 3x3 区域,就是说 f(x+1) 在这儿有个1 ,而对应-f(x) 在这儿有个-1 ,将其它的都用0替代 ,基本上就是这样表示的,于是我就得到了 x方向 的一阶导数 。得到的图如下图所示,这种图我们把它称为掩膜
在这里插入图片描述
类似的,我能得到 y方向的一阶导数。然后我们实际上也能够求二阶导数。同样的,我们能够写一个具体的方程,还有模板,来表示二阶导数。同样也是 取x方向,也是有很多很多种方式来求, 其中一种求取二阶导数的方法,就是取 f(x+1) +f(x-1) - 2f(x)。 就是对一阶导数再求导,所以二阶导数很清楚地表明在我们的图像中何处有大的变化,这是十分有效的。

我们通过求导数,来检验大的变化,运用像这样的掩模来实现。我们继续来看一些例子,这些是不同的掩模,可以用于计算不同类型的导数。如下图a,这实际上是计算 x方向和 y方向的二阶导数之和,这被称作 f 的拉普拉斯算子▲。而图b、c、d是在另一种求导形式下演变出拉普拉斯算子的不同实现形式。
在这里插入图片描述
运用拉普拉斯算子,我们使得变化更为明显。下图是一幅月球的图像,接下来我们看到的就是这幅图像的拉普拉斯算子,图b应用上图中a掩膜下的这个拉普拉斯算子后的效果,我们将其加强,类似拉伸操作地修正直方图。接下来,我们把原图和它相叠加,得到了图c,可以明显看出,图像变化的部分变得更加明显,一些细节部分在这幅图像中比之前的更为清晰。这种变化我们称为锐化(sharpen)。总结一下,我们有一幅图像,用拉普拉斯算子处理,将其强化后,然后将它们加起来,就得到了这幅图像。图d是使用上述中掩膜b进行锐化后的图像。
在这里插入图片描述
我们用另外的图片来试试,下图又是一张看上去有点模糊的图片。图b是它经拉普拉斯操作后的图像,或许有点难看出是什么,但是我们将它和原图相加得到图c,可以看出细节部分变化很明显。而图d是使用所谓的用于边缘检测的索贝尔算子,这是导数的另一种计算方式,产生了不同的锐化效果。
在这里插入图片描述
在这些效果中,有一种效果被称作反锐化掩模 (unsharp masking)。先将图像平滑处理,我们如何平滑一幅图像呢?其中一种方法就是取局部均值,反映在掩模中 就是全部都为1 ,然后再用 1/9 进行归一化处理,平滑处理后,就得到了图b。这样处理后,我们将其减去原始图像,就得到了图c,图c就称为反锐化掩模 (unsharp masking)。
在这里插入图片描述
最后我们将此结果和原图像相加,看看我们得到的图d,实际上边界被强化了,和我们在之前的例子中所见的一样,图像被锐化了。这是因为我们模糊化是通过削弱边界得到的,当我们将边界叠加回去后,就得到了更加锐化的边界以及锐化的图像。这就是所谓的反锐化掩模,一个虽简单但强大的操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值