[TOC]
图像平滑
空间域
均值滤波
用来降噪,但也会使图像模糊,效果常常不理想,但使最基本的处理方法
介绍时常说时 3x3 不含中间的周围 8 个和的平均值,不过在实际应用中常常把中间的算上。
一般都是模板内的值都相等,都为 $1/n^2$ ,也可以把周围的取值稍作变换,例如让离中心的更远的四个角上的取值更小,离中心点更近的取值更大。
下方代码并没有处理边缘部分。
1 |
|
中值滤波
能较好的保留图像的边缘信息,对椒盐噪声处理效果极好,但对其他某些噪声的处理效果可能会不太理想。有较多的点、线、尖顶角的细节结构,不用中值滤波。
一般直接取模板内的中间值即可。
改进版:
- 对窗内的每行像素按降序排序,得到最大值、中间值和最小值。
- 把三行的最小值即第三列相比较,取其中的最大值。
- 把三行的最大值即第一列相比较,取其中的最小值。
- 把三行的中间值即第二列相比较,再取一次中间值。
- 把前面的到的三个值再做一次排序,获得的中值即该窗口的中值。
下面是一般的版本,代码没有处理边缘部分。
1 |
|
频域
把频域低通滤波器的操作分成了两小步,先设置滤波器,再应用,第二步可以通用。
1 |
|
### 理想低通滤波(FLPF)
\(\begin{array}{l}{H(u, v)=\left\{\begin{array}{ll}{1} & {D(u, v) \leq D_{0}} \\ {0} & {D(u, v)>D_{0}}\end{array}\right.} \\ {D(u, v)=\sqrt{u^{2}+v^{2}}}\end{array}\) 由于方波函数经过傅里叶变换后是取样函数 $Sa$ ,取值有正有负,根据其函数图像特性,处理后的图像会有较明显的模糊和振铃现象。
1 |
|
Butterworth低通滤波(BLPF)
\(\begin{align*} H(u, v)&=\frac{1}{1+\left[D(u, v) / D_{0}\right]^{2 n}}\\ \qquad D(u, v)&=\sqrt{u^{2}+v^{2}} \end{align*}\) $D_0$ 为 $H(u,v)$ 下降到 $1/2$ 时的频率值,为截止频率。
1 |
|
指数低通滤波(ELPF)
\(H(u, v)=e^{\frac{-D^{2}(u, v)}{2 D_{0}^{2}}}\)
1 |
|
图像锐化
锐化和平滑相当于两种相反的操作,平滑相当于做积分,锐化相当于做微分。同样分为空间域和频域两种处理方式。
空间域
空间域有多种边缘检测算子,下面列举几个常见的。
梯度运算
两个方向分别跑一次 \(\begin{align*} G_x &= f(i+1, j)-f(i,j) \quad \quad G_x = \begin{bmatrix} -1&1 \end{bmatrix} \\ G_y &= f(i, j+1)-f(i,j) \quad \quad G_y = \begin{bmatrix} -1\\ 1 \end{bmatrix} \end{align*}\)
Roberts算子
水平相减变成对角相减 \(G_x = f(i+1, j+1)-f(i,j) \quad \quad G_x = \begin{bmatrix} -1&0 \\ 0&1 \end{bmatrix} \\ G_y = f(i, j+1)-f(i+1,j) \quad \quad G_y = \begin{bmatrix} 0&-1 \\ 1&0 \end{bmatrix}\)
Prewwit 算子
因为中间的0,对噪声有一定的抑制 \(\begin{align*} S_x &= \begin{bmatrix} 1&0&-1 \\ 1&0&-1 \\ 1&0&-1 \end{bmatrix} \\ S_y &= \begin{bmatrix} -1&-1&-1 \\ 0&0&0 \\ 1&1&1 \end{bmatrix} \end{align*}\)
Sobel算子
最常用,也有抑制噪声作用 \(\begin{align*} S_x &= \begin{bmatrix} 1&0&-1 \\ 2&0&-2 \\ 1&0&-1 \end{bmatrix} \\ S_y &= \begin{bmatrix} -1&-2&-1 \\ 0&0&0 \\ 1&2&1 \end{bmatrix} \end{align*}\)
Isptropic算子
Sobel算子的进一步优化 \(\begin{align*} S_x &= \begin{bmatrix} 1&0&-1 \\ \sqrt{2}&0&-\sqrt{2} \\ 1&0&-1 \end{bmatrix} \\ S_y &= \begin{bmatrix} -1&-\sqrt{2}&-1 \\ 0&0&0 \\ 1&\sqrt{2}&1 \end{bmatrix} \end{align*}\)
Laplace算子
二阶微分算子,是一个标量。 \(g(x,y) = f(x,y) + \triangledown^2f(x,y) \\ \triangledown^2f(x,y) = \begin{bmatrix} 0 & 1 & 0 \\ 1 &-4 & 1 \\ 0 & 1 & 0 \end{bmatrix}\)
频域
和平滑操作相反,$高通滤波函数 = 1 - 低通滤波函数$
同样有 FHPF、BHPF、EHPF 等高通滤波函数,不再一一详细介绍。