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

一、逐点运算

在这里插入图片描述
我们从非常简单的操作开始,都是一些直方图修正或者说是逐点运算,上图表明了它的基本思想,图像中的每一个像素的灰度,都会根据一个特定的方程改变它的值,但它不会被图像中其它任何部分的像素影响到。 这里输入值是一个特定的像素值,输出值也是一个特定的像素值。例如这个运算中,所有小于 k 的像素值都会变成 0 而大于k 的像素值会变成 1 或者是图像中的最大值,这种变换称为阈值处理。为了方便表示这种逐点运算,所以现在要确立一个一维函数,来将输入值转化为输出值。
在这里插入图片描述
上图是变换的几个例子,这里有一些图示。首先看到图中的恒等变换(Identity),输入值与输出值相等。如果我们把输出值记作 s,输入值记作r ,那么此变换的表达式即 s = r 。还有对数运算(Log),表达式为 s=Clog(r+1),式中我们对输入值r加1,避免输入是0时,无法进行对数运算。还有反转(Inverse) ,表达式为s = L - r ,其中 L为最大值。注意,这里所有的运算,实际上都只关心灰度值,这里并不关心像素在图像中的位置。这些操作还有一个重要性质,即这些运算是可逆的。我们在后续课程中会看到,这并不总是可行的,但是这种特殊的运算是可以的。
在这里插入图片描述
另外一个非常重要的运算是指数函数,表达式是s = C
r^γ 。 这里的基本思路是,根据特定的 γ 我们会得到不同的函数来将输入值转换成输出值,通常把这称作伽马校正
在这里插入图片描述
伽马矫正在显示器中非常常用,由于显示器的一些特性,如果不对图像做伽马校正,那么图像会显得特别暗,这是显示器的一些特性造成的。所以有时在将图片发送到显示器之前,需要做伽马校正,如上图所示,再发送到显示屏,伽马校正就会抵消由于显示器的特性而产生的变暗的效果。所以基本上每个显示器,在显示之前都会做伽马校正。
在这里插入图片描述
在这里插入图片描述
另外,伽马校正在延展像素值时也非常有用。例如,在上图a中,大多数的像素会聚集在较亮的值上,表示在直方图上那么在灰度值大的区域像素会占很多。此时我们可以用伽马校正,可以延展这个直方图,结果如b\c\d所示。我们可以看到这里生成了一个更好的图像,它们分别是使用了不同参数做的伽马矫正。并且,做伽马校正,并不用将这些运算应用在整幅图像中,可以只在局部应用。

二、直方图均衡化

为了实现直方图均衡化,我们的目标是从一个给定的分布转换到一个均匀的分布。假设像素的值是从 0到(L-1),我们希望得到一个均匀的分布,所以每个灰度值出现的概率应该是 1/(L-1) 。所以我们需要一个变换,将任何像素值变换到一个新的像素值,从而得到一个均匀分布。对于这样的一个变换有一个要求,我们将要做出一个递增的变换,这样做的原因是我们不想反转像素值。比如7对应的是10,8对应的就应该至少是10 也可能大于10 ,否则我们就反转了图像的内容,这样并非是直方图均衡化的目的。
在这里插入图片描述
如上图所示,有时我们可以得到严格单调递增的函数,每一个不同的像素值都对应一个不同的像素值,有时我们会得到单调递增函数,其中一些像素值有可能对应相同的像素值。我们在做直方图均衡化时,往往采用上图左边的变换方法,这是计算机做离散型数据的直方图均衡化过程中存在的一个问题,有时候我们无法避免这种情况。

接下来我们如何来找到变换函数呢? 基本思想其实很简单,我们可以把直方图看作一个分布s ,我们现在想要得到一个新的分布,那么给定像素值的概率是多少?

我们要找的是一个从 r到s 的映射,设为s = T( r ),概率论中有一个基本公式如下:
若 s = T ( r ) , 则 P s ( s ) = P r ( r ) ∗ ∣ d r d s ∣ 若s=T(r),则P_s(s)=P_r(r)*|\frac{dr}{ds}| s=TrPs(s)=Pr(r)dsdr
我们的变换函数s的公式如下:
s = T ( r ) = 1 L − 1 ∫ 0 r p ( w ) d w s = T(r)=\frac{1}{L-1}\int^{r}_{0}{p(w)dw} s=T(r)=L110rp(w)dw
如果我们是在一个离散空间中,再求积分时,我们就会数一下。如果我们想要知道当 r=7时,应该变换到哪一个像素值。我们就要数有多少像素值为0,有多少像素值为1,有多少为2,有多少为3,这样一直到7,就会得到这个变换。关于此公式的证明如下:
由 P ( S < = s ) = P ( R < = r ) 可 得 : ∫ 0 s p ( s ) d s = ∫ 0 r p ( r ) d r 若 s 服 从 均 匀 分 布 , 则 p ( s ) = 1 L − 1 所 以 , s = 1 L − 1 ∫ 0 r p ( w ) d w 由P(S<=s)=P(R<=r)可得:\\ \int^{s}_{0}{p(s)ds}=\int^{r}_{0}{p(r)dr}\\ 若s服从均匀分布,则p(s)=\frac{1}{L-1}\\ 所以,s =\frac{1}{L-1}\int^{r}_{0}{p(w)dw} P(S<=s)=P(R<=r)0sp(s)ds=0rp(r)drsp(s)=L11s=L110rp(w)dw
关于直方图修正,还有一种方法叫做直方图匹配,即想让直方图变换为自己需要的分布。方法是对原直方图和目标直方图均做均衡化变换,记作T1、T2,然后直方图匹配的变化函数即为T1*T2^(-1)。

三、局部邻域操作

在这里插入图片描述

上述的直方图修正,我们只依据像素的灰度值本身进行替换,而不会考虑该像素周围的图像区域。接下来我们将考虑邻域产生的影响,依据给定像素周围的情况,替换其像素值。如上图,假如我们有一幅完整的图像,考虑一个像素,我们会根据这个像素的周围像素,决定如何替换它的像素值。不再是只根据像素值本身来决定如何变化,像素的改变将依赖于邻域像素
在这里插入图片描述
如上图所示,简单的处理方式就是
取平均值
,所以我们可以将这个像素值,替换为它附近 3x3 区域内像素值的平均值。我们还可以做加权平均,比如像素本身的权重是1 ,而4邻域中的像素按权重为0.6065来计算,对角线上的像素其权重为0.3679 。这样我们就分配好了4.8976个权。
在这里插入图片描述
让我们看看真实图像中情况是怎样的?如上图,每一个图像中我们选取不同大小的邻域大小从 3x3 到 21x21。我们选取的邻域越大,平均处理的像素就越多。我们可以看到最终的效果,当平均的区域大小是 3x3 时,我们看不出什么变化,但是 21x21 邻域处理后,我们看到很多东西变得模糊了。
在这里插入图片描述
为什么会变模糊呢?让我用一个一维函数来说明,如果我取上图中的上下两点进行平均,很明显,上点会变小,下点会变大。于是这个极端陡峭的曲线会变得比较平滑,对比度降低,造成了模糊。
在这里插入图片描述
这个操作虽然会有模糊现象,但是是相当重要的。对特定的问题,我们需要设计出合适大小的窗口。比如,在上图,我们想要去除那些非常小的物体,可能那些是噪点或是一些星球。接着我们就可以对这个图像做局部滤波处理,在这个例子中,我们使用了 15x15 大小的窗口。虽然这张图片变得模糊了,但是我们去除了这些小颗粒,小颗粒会被周围的深色像素平均化。接着,它的灰度值就会变得非常小,非常接近于0。当我对其阈值处理后,我基本上得到了我想要的区域,也就是更大、更明亮的区域。综上,首先我们模糊化,然后做阈值处理,这样我们可以去除噪点,就得到图像中对我们最重要的物体 。以上这种滤波方式又称为均值滤波(Mean filtering)。

四、均值滤波的数学特性

均值滤波(Mean filtering)的性质,也就是局部平均(local averaging) 的性质,有以下两点:第一点,其类似于计算平均数,使一定区域内,均方差取最小值。第二点是,像素值和热量之间有相通的地方,所以局部平均就是在类似扩散热量那样扩散像素值,这就是为什么它使图像变模糊了。我们看到它使图像模糊,就是因为像素值被扩散了。这同样适用于热量,如果在开始时 一个地方热,而另一个地方冷,热流会使热量扩散,使之变得更均衡。当然,如果你等足够长时间,那就等价于有一个很小的方差,我们就会得到平均数。那就得到的就是整个图像的均值 。接下来,会从数学的角度说明以上两个性质。

首先,需要学习如下的定理,此定理利用求导即可证明。
当 x 取 a i 的 平 均 值 时 , ∑ i n ( x − a i ) 2 最 小 当x取a_i的平均值时,\sum^{n}_{i}{(x-a_i)^2}最小 xaiin(xai)2
那么在 3 x 3的图像中,用周围九个数字的平均值代替中心像素点的灰度,由上述定理可得,其实可以最小化均方差。这是均值法的第一个特性。

我们再来看另一个的性质。我们的思路是,取图像 f (x,y),并用滤波器对其进行卷积,我们用所谓的高斯滤波器,进行卷积操作。高斯滤波器的形式是一个均值为0,方差为某数的高斯函数。
f ( x , y , σ ) = f ( x , y ) ∗ G ( 0 , σ ) f(x,y,\sigma)=f(x,y)*G(0,\sigma) f(x,y,σ)=f(x,y)G(0,σ)
高斯滤波满足以下这个等式,图像依据拉普拉斯算子进行变化,它是由时间变化决定的,图像扩散得更充分,就等同于有一个大的sigma 或者说一个大的方差。
d f d t = Δ f = d 2 f d x 2 + d 2 f d y 2 \frac{df}{dt}=\Delta f=\frac{d^2f}{dx^2}+\frac{d^2f}{dy^2} dtdf=Δf=dx2d2f+dy2d2f
这个公式体现了**热流(heat flow)**的性质,热流基本都是在讲扩散,就像是你的房间有热量,而热量在其中扩散。

用高斯滤波器进行这个局部平均所得的结果,等同于把图像的灰度值想象成热量,让它遵循着热流来运作,也就是遵循这个等式,这两个是等价的运算。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值