第3章 灰度变换与空间滤波

3.1 背景知识

空间域处理:

$$ g(x, y)=T[f(x, y)] $$

其中 $f(x,y)$ 是输入图像,$g(x,y)$ 是处理后的图像,$T$ 是在点 $(x,y)$ 的邻域上定义的关于 $f$ 的一种算子。

当邻域大小为 $1\times 1$ 时,称为如下灰度变换函数:

$$ g(x, y)=T[f(x, y)] $$

对比度拉伸阈值处理

image-20191028220400999

3.2 一些基本的灰度变换函数

3.2.1 图像反转

$$ s=L-1-r $$

适用于增强嵌入在一幅图像的暗区域中的白色或灰色细节,特别是当黑色面积在尺寸上占主导地位时。

3.2.2 对数变换

$$ s=c \log (1+r) $$

该变换将输入中范围较窄的低灰度值映射为输出中较宽范围的灰度值,对于输入中的高灰度值则相反。我们使用这种类型的变换来扩展图像中暗像素的值,同时压缩更高灰度级的值。

反对数变换作用与此相反:

$$ s=c \left(b^{r}-1\right) $$

image-20191028220908069

3.2.3 幂律(伽马)变换

$$ s=c r^{\gamma} $$

与对数变换的情况类似,部分 $\gamma$ 值的幂律曲线将较窄的暗色输入值映射为较宽范围的输出值。随着 $\gamma$ 值的变换,将得到一族变换曲线,$\gamma>1$ 的曲线与 $\gamma<1$ 的曲线效果完全相反。

用于图像获取、打印和显示的各种设备根据幂律来产生响应,用于校正这些幂律响应现象的处理称为伽马校正

image-20191028221356401

3.2.4 分段线性变换函数

对比度拉伸

对比度拉伸的作用是扩展图像灰度级的动态范围。

image-20191028222200718

灰度级分层

灰度级分层的作用是突出图像中特定灰度范围的亮度。

image-20191028222259342

比特平面分层

比特平面分层的作用是突出特定的比特。

image-20191028222658428

3.3 直方图处理

假设 $r_k$ 表示 $L$ 级数字图像 $f(x,y)$ 的灰度值,则 $f$ 的未归一化直方图(unnormalized histogram)定义为:

$$ h\left(r_{k}\right)=n_{k} \quad \text { for } k=0,1,2, \ldots, L-1 $$

其中 $n_k$ 表示灰度值为 $r_k$ 的像素个数。图像行列数分别为$M,N$,归一化直方图(normalized histogram)定义为:

$$ p\left(r_{k}\right)=\frac{h\left(r_{k}\right)}{M N}=\frac{n_{k}}{M N} $$

image-20191028223537389

直观上可以得出以下结论:如果一幅图像的像素倾向于占据整个可能的灰度级并且分布均匀,则该图像会有高对比度的外观,其灰度细节丰富并且动态范围较大。

3.3.1 直方图均衡

给定灰度变换函数 $s=T(r)$,我们假设:

  • $T(r)$ 在区间 $0 \leqslant r \leqslant L-1$ 为单调递增函数;
  • 当 $0 \leqslant r \leqslant L-1$ 时,$0 \leqslant T(r) \leqslant L-1$。

则有:

  • 该变换的反变换为 $r=T^{-1}(s)$;
  • $s$ 的概率密度函数为 $p_{s}(s)=p_{r}(r)\left|\frac{d r}{d s}\right|$。

因此,输出灰度 $s$ 的pdf就由输入灰度 $r$ 的pdf和所用的变换函数决定。

直方图均衡的变换函数

$$ s=T(r)=(L-1) \int_{0}^{r} p_{r}(w) \mathrm{d} w $$

对其求导:

$$ \frac{\mathrm{d} s}{\mathrm{d} r}=\frac{\mathrm{d} T(r)}{\mathrm{d} r}=(L-1) \frac{\mathrm{d}}{\mathrm{d} r}\left[\int_{0}^{r} p_{r}(w) \mathrm{d} w\right]=(L-1) p_{r}(r) $$

代入输出灰度的pdf得:

$$ p_{s}(s)=p_{r}(r)\left|\frac{\mathrm{d} r}{\mathrm{d} s}\right|=p_{r}(r)\left|\frac{1}{(L-1) p_{r}(r)}\right|=\frac{1}{L-1}, \quad 0 \leqslant s \leqslant L-1 $$

因此,执行直方图均衡(histogram equalization)灰度变换将得到一个服从均匀分布的变量 $s$,这个结果与输入灰度的pdf $p_{r}(r)$ 的形式无关。

对于离散值,我们使用其概率与求和来代替pdf与积分。一幅数字图像中灰度级 $r_k$ 出现的概率近似为

$$ p_{r}\left(r_{k}\right)=\frac{n_{k}}{M N}, \quad k=0,1,2, \cdots, L-1 $$

此时,直方图均衡变换函数为:

$$ s_{k}=T\left(r_{k}\right)=(L-1) \sum_{j=0}^{k} p_{r}\left(r_{j}\right)=\frac{(L-1)}{M N} \sum_{j=0}^{k} n_{j}, \quad k=0,1,2, \cdots, L-1 $$

image-20191028230424323

3.3.2 直方图匹配(规定化)

对于某些应用,采用均匀直方图的基本增强并不是最好的方法。有时我们希望处理后的图像具有规定的直方图形状,这种用于产生处理后有特殊直方图的方法称为直方图匹配(histogram matching)或直方图规定化(histogram specification)。

对于输入:

$$ s=T(r)=(L-1) \int_{0}^{r} p_{r}(w) d w \tag{1} $$

对于输出:

$$ G(z)=(L-1) \int_{0}^{z} p_{z}(t) d t=s\tag{2} $$

因此:

$$ z=G^{-1}(s)=G^{-1}[T(r)]\tag{3} $$

使用下列步骤得到灰度级具有指定概率密度函数的图像:

  1. 由输入图像得到 $p_r(r)$,并由 $(1)$ 求得 $s$ 的值;
  2. 使用 $(2)$ 中指定的pdf求得变换函数 $G(z)$;
  3. 求得反变换函数 $z=G^{-1}(s)$,该处理是 $s$ 到 $z$ 的映射,后者正是我们期望的值。
  4. 首先使用 $(1)$ 对输入图像进行均衡得到输出图像,该像素的值是 $s$ 值;然后对均衡后的图像使用反映射 $z=G^{-1}(s)$ 得到输出图像中的相应像素;当所有像素处理完毕后,输出图像的pdf将等于指定的pdf。

典型的变换函数:

image-20191028232433366

image-20191028232612698

3.3.3 局部直方图处理

局部直方图处理的目的是增强图像中小区域的细节,采用的手段是以图像中每个像素的邻域中的灰度分布为基础设计变换函数。

前面描述的直方图处理技术都可以应用到局部直方图处理中。定义一个邻域,并把该区域的中心从一个像素移至另一个像素,在每个位置计算邻域中的直方图,并应用直方图均衡或直方图匹配技术。

image-20191028233449119

3.3.4 使用直方图统计进行图像增强

直方图统计在全局和局部处理中都可以使用。

平均灰度(average intensity):

$$ m=\sum_{i=0}^{L-1} r_{i} p\left(r_{i}\right)=\frac{1}{M N} \sum_{x=0}^{M-1} \sum_{y=0}^{N-1} f(x, y) $$

灰度方差(intensity variance):

$$ \sigma^{2}=\sum_{i=0}^{L-1}\left(r_{i}-m\right)^{2} p\left(r_{i}\right)=\frac{1}{M N} \sum_{x=0}^{M-1} \sum_{y=0}^{N-1}[f(x, y)-m]^{2} $$

令 $f(x,y)$ 表示输入图像的像素值,$g(x,y)$ 表示增强后的像素值,则对于 $x=0,1,2, \cdots, M-1, y=0,1,2, \cdots, N-1$有:

$$ g(x, y)=\left\{\begin{array}{ll}{C f(x, y)} & {\text { if } k_{0} m_{G} \leq m_{S_{w}} \leq k_{1} m_{G} \text { AND } k_{2} \sigma_{G} \leq \sigma_{S_{w}} \leq k_{3} \sigma_{G}} \\ {f(x, y)} & {\text { otherwise }}\end{array}\right. $$

其中,$E,k_0,k_1,k_2$ 是规定的参数;$m_G$ 是输入图像的全局均值,$\sigma_G$ 是输入图像的标准差;参数 $m_{S_{xy}},\sigma_{s_{xy}}$ 分别是局部均值和标准差;$M,N$ 是图像行和列的维数。

image-20191028234454954

3.4 空间滤波基础

3.4.1 空间滤波机理

一个空间滤波器(spatial filter)

  • 直接作用于图像本身;
  • 也称为空间掩模(spatial masks)、核(kernel)、模板(templates)、窗口(window);
  • 由一个 邻域(neighborhood) 和一个 预定义操作(predefined operation) 组成;
  • 可以是线性或者非线性的。

image-20191105113332965

线性空间滤波的表达式:

$$ g(x, y)=\sum_{s=-a}^{a} \sum_{t=-b}^{b} w(s, t) f(x+s, y+t) $$

其中:

  • $f(x,y)$:输入图像
  • $g(x,y)$:输出图像
  • $w(s,t)$:$m\times n$ 空间滤波器,$m=2 a+1, n=2 b+1$

3.4.2 空间相关与卷积

image-20191105115151140

相关(correlation):

$$ w(x, y) \text{☆} f(x, y)=\sum_{s=-a}^{a} \sum_{t=-b}^{b} w(s, t) f(x+s, y+t) $$

卷积(convolution):

$$ w(x, y) \text{★} f(x, y)=\sum_{s=-a}^{a} \sum_{t=-b}^{b} w(s, t) f(x-s, y-t) $$

相较于相关,卷积只是把滤波器旋转了180度。

image-20191105115515938

线型滤波的向量表示:

$$ R=w_{1} z_{k}+w_{2} z_{2}+\cdots+w_{m n} z_{m n}=\sum_{k=1}^{m n} w_{k} z_{k}=\boldsymbol{w}^{T} \boldsymbol{z} $$

3.4.3 可分滤波核

如果2-D函数 $G(x,y)$ 能被写为2个1-D函数 $G_{1}(x),G_{2}(x)$的乘积,则称它是可分的(separable)。

$$ w=\boldsymbol{v} \boldsymbol{w}^{T} $$

根据卷积运算的性质:

$$ w \text{★} f=\left(w_{1} \text{★} w_{2}\right) \text{★} f=\left(w_{2} \text{★} w_{1}\right) \text{★} f=w_{2} \text{★}\left(w_{1} \text{★} f\right)=\left(w_{1} \text{★} f\right) \text{★} w_{2} $$

该公式表明,使用滤波核 $w$ 对图像 $f$ 进行操作,等价于先使用 $w_1$ 对 $f$ 进行操作,再对结果使用 $w_2$ 进行操作。因此,使用可分滤波核所带来的计算优越性(computational advantage)为:

$$ C=\frac{M N m n}{M N(m+n)}=\frac{m n}{m+n} $$

3.4.4 空间滤波器模板的产生

生成一个大小为 $m\times n$ 的线性空间滤波器要求指定 $mn$ 个模板系数,这些系数是根据该滤波器支持什么样的操作来选择的。

  • 线性滤波器

    • Constant:$R=\frac{1}{9} \sum_{k=1}^{9} Z_{k}$
    • Coordinate:$h(x, y)=e^{-\frac{x^{2}+y^{2}}{2 \sigma^{2}}}$
  • 非线性滤波器

    • 最大值滤波(max filter)
    • 中值滤波(median filter)

3.5 平滑(低通)空间滤波器

平滑滤波器的作用:

  • 进行模糊预处理
  • 降噪

3.5.1 盒式滤波器

盒式滤波器(box filter)的表达式:

$$ g(x, y)=\frac{\sum_{s=-a}^{a} \sum_{t=-b}^{b} w(s, t) f(x+s, y+t)}{\sum_{s=-a}^{a} \sum_{t=-b}^{b} w(s, t)} $$

image-20191105123024588

3.5.2 低通高斯滤波器

低通高斯滤波器(lowpass Gaussian filter)的表达式:

$$ w(s, t)=G(s, t)=K e^{-\frac{s^{2}+t^{2}}{2 \sigma^{2}}} $$

令 $r=\left[s^{2}+t^{2}\right]^{1 / 2}$,则该表达时也可写作:

$$ G(r)=K e^{-\frac{r^{2}}{2 \sigma^{2}}} $$

image-20191105123455370

image-20191105123534544

3.5.3 统计排序滤波器

统计排序滤波器(order-statistic filter)是一种非线性空间滤波器,这种滤波器的响应以滤波器包围的图像区域中所包含的像素的排序为基础,使用统计排序结果确定的值来代替中心像素的值。

$$ R=H\left\{z_{k} | k=1,2, \cdots m n\right\} $$

$3\times 3$ 中值滤波器:

$$ R=\operatorname{median} \left\{z_{k} | k=1,2, \cdots, 9\right\} $$

中值滤波器对处理脉冲噪声(impulse noise )非常有效,这种噪声也称为 椒盐噪声(salt-and-pepper noise),因为这种噪声是以黑白点的形式叠加在图像上的。

image-20191105124419185

$3\times 3$ 最大值滤波器:

$$ R=\max \left\{z_{k} | k=1,2, \cdots, 9\right\} $$

3.6 锐化(高通)空间滤波器

锐化处理的主要目的是突出灰度的过渡部分,它是使用空间微分(spatial differentiation)实现的。

3.6.1 基础

任何一阶微分的定义必须保证:

  • 在恒定灰度区域的微分值为0;
  • 在灰度台阶或斜坡处微分值非0;
  • 沿着斜坡的微分值非0。

任何二阶微分的定义必须保证:

  • 在恒定区域微分值为0;
  • 在灰度台阶或斜坡的起点处微分值非0;
  • 沿着斜坡的微分值非0。

对于一维函数 $f(x)$,我们将它的一阶微分定义为:

$$ \frac{\partial f}{\partial x}=f(x+1)-f(x) $$

二阶微分定义为:

$$ \frac{\partial^{2} f}{\partial x^{2}}=f(x+1)+f(x-1)-2 f(x) $$

image-20191105125505852

3.6.2 使用二阶微分进行图像锐化——拉普拉斯算子

各向同性滤波器:响应与图像的突变方向无关,具有旋转不变性。

最简单的各向同性微分算子是拉普拉斯算子。一个二维图像 $f(x,y)$ 的拉普拉斯算子(Laplacian)定义为:

$$ \nabla^{2} f=\frac{\partial^{2} f}{\partial x^{2}}+\frac{\partial^{2} f}{\partial y^{2}} $$

在 $x$ 方向上:

$$ \frac{\partial^{2} f}{\partial x^{2}}=f(x+1, y)+f(x-1, y)-2 f(x, y) $$

在 $y$ 方向上:

$$ \frac{\partial^{2} f}{\partial y^{2}}=f(x, y+1)+f(x, y-1)-2 f(x, y) $$

两个变量的拉普拉斯算子:

$$ \nabla^{2} f(x, y)=f(x+1, y)+f(x-1, y)+f(x, y+1)+f(x, y-1)-4 f(x, y) $$

image-20191105130221467

如果所使用的拉普拉斯定义具有负的中心系数,那么需要将原图减去经拉普拉斯变换后的图像得到锐化结果,而不是加上它。使用拉普拉斯进行图像锐化的表达式为:

$$ g(x, y)=f(x, y)+c\left[\nabla^{2} f(x, y)\right] $$

其中,$f(x,y)$ 和 $g(x,y)$ 分别是输入图像和锐化后的图像。如果使用图3.45(a)或(b)中的拉普拉斯滤波器,则 $c=-1$,如果使用另外2个滤波器,则 $c=1$。

image-20191105130927788

3.6.3 非锐化掩蔽和高提升滤波

非锐化掩蔽(unsharp masking)的处理过程:

  1. 模糊原图像;
  2. 从原图像减去模糊图像(产生的差值图像称为掩模);

$$ g_{\text {mask }}(x, y)=f(x, y)-\overline{f(x, y)} $$

  1. 将掩模加到原图像上。

$$ g(x, y)=f(x, y)+k * g_{\operatorname{mask}}(x, y) $$

当 $k=1$ 时,我们得到上面定义的非锐化掩蔽;当 $k>1$ 时,该处理称为高提升滤波(highboost filtering)。

image-20191105131610290

3.6.4 使用一阶微分进行图像锐化——梯度

函数 $f(x,y)$ 在坐标 $(x,y)$ 处的梯度定义为二维列向量

$$ \nabla f \equiv \operatorname{grad}(f) \equiv\left[\begin{array}{l}{g_{x}} \\ {g_{y}}\end{array}\right]=\left[\begin{array}{l}{\frac{\partial f}{\partial x}} \\ {\frac{\partial f}{\partial y}}\end{array}\right] $$

梯度向量 $\nabla f$ 的长度为:

$$ M(x, y)=\operatorname{mag}(\nabla f)=\sqrt{g_{x}^{2}+g_{y}^{2}} $$

在某些实现中,用绝对值来近似平方和平方根操作更适合计算:

$$ M(x, y) \approx\left|g_{x}\right|+\left|g_{y}\right| $$

一阶微分的不同定义:

  • 罗伯特交叉梯度算子(Robert cross-gradient operator)

$$ M(x, y)=\left[\left(z_{9}-z_{5}\right)^{2}+\left(z_{8}-z_{6}\right)^{2}\right]^{1 / 2} $$

$$ M(x, y)=\left|z_{9}-z_{5}\right|+\left|z_{8}-z_{6}\right| $$

  • Sobel算子(Sobel operator)

$$ \begin{aligned} M(x, y)=\left[g_{x}^{2}+g_{y}^{2}\right]^{\frac{1}{2}}=&\left[\left[\left(z_{7}+2 z_{8}+z_{9}\right)-\left(z_{1}+2 z_{2}+z_{3}\right)\right]^{2}\right.\\ &\left.+\left[\left(z_{3}+2 z_{6}+z_{9}\right)-\left(z_{1}+2 z_{4}+z_{7}\right)\right]^{2}\right]^{\frac{1}{2}} \end{aligned} $$

$$ \begin{aligned} M(x, y)=&\left|\left(z_{7}+2 z_{8}+z_{9}\right)-\left(z_{1}+2 z_{2}+z_{3}\right)\right| \\ &+\left|\left(z_{3}+2 z_{6}+z_{9}\right)-\left(z_{1}+2 z_{4}+z_{7}\right)\right| \end{aligned} $$

image-20191105133722523

3.7 低通,高通,带阻与带通滤波器

image-20191105140053198

image-20191105140116631

Last modification:November 5th, 2019 at 02:27 pm
如果觉得我的文章对你有用,请随意赞赏