# 第 3 章 灰度变换与空域滤波

# 本章概括

本章讨论空间域图像增强。内容包括灰度变换基础、常见灰度映射、直方图处理、直方图均衡与规定化、空间滤波基础、平滑滤波和锐化滤波。重点是理解不同增强方法如何改变像素灰度或邻域结构。

# 灰度变换与空间滤波基础

空间域处理直接在像素坐标上操作,可表示为:

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

其中 f(x,y)f(x,y) 是输入图像,g(x,y)g(x,y) 是输出图像,TT 是对单像素或邻域的处理算子。当邻域大小为 1×11\times 1 时,处理退化为灰度变换。

灰度变换可写为:

s=T(r)s=T(r)

其中 rr 为输入灰度,ss 为输出灰度。它主要用于调整亮度、对比度或突出特定灰度范围。

# 常见灰度变换

# 图像求反

图像反转变换为:

s=L1rs=L-1-r

其中 LL 是灰度级数。反转常用于增强暗背景中亮细节,类似底片效果。

# 对数变换

对数变换为:

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

其中 cc 为比例常数。该变换扩展低灰度、压缩高灰度,常用于显示傅里叶频谱这类动态范围很大的图像。

# 指数变换与伽马校正

伽马变换为:

s=crγs=cr^\gamma

γ<1\gamma<1 时,输出图像整体变亮;当 γ>1\gamma>1 时,输出图像整体变暗。显示器和相机常用伽马校正补偿非线性响应。

# 分段线性变换

分段线性变换包括对比度拉伸、灰度级切分和比特平面分割。对比度拉伸把灰度范围扩展到更宽区间;灰度级切分突出某一灰度范围;比特平面分割把灰度值按二进制位拆分,便于观察不同位平面对图像细节的贡献。

# 灰度直方图

直方图统计每个灰度级出现的频数或概率:

p(rk)=nkMNp(r_k)=\frac{n_k}{MN}

其中 rkr_k 是第 kk 个灰度级,nkn_k 是该灰度级像素数,MNMN 是像素总数。直方图反映图像亮度分布,但不包含空间位置信息。

# 直方图均衡

连续形式的直方图均衡变换为:

s=T(r)=(L1)0rpr(w)dws=T(r)=(L-1)\int_0^r p_r(w)\,dw

其中 pr(w)p_r(w) 为输入灰度概率密度。该变换利用累计分布函数把灰度分布尽量拉平,从而增强整体对比度。

离散形式为:

sk=(L1)j=0kpr(rj)s_k=(L-1)\sum_{j=0}^{k}p_r(r_j)

其中 sks_k 是灰度 rkr_k 映射后的结果。均衡后图像细节通常更明显,但可能放大噪声或使局部区域过增强。

# 直方图规定化

规定化又称直方图匹配,目标是让输出图像具有指定直方图。其基本思想是先对输入图像均衡得到 s=T(r)s=T(r),再根据目标分布 G(z)G(z) 求逆映射:

z=G1(s)=G1[T(r)]z=G^{-1}(s)=G^{-1}[T(r)]

其中 zz 是最终输出灰度。规定化比均衡更可控,适合把图像调整到某种期望风格或亮度分布。

# 空间滤波基础

空间滤波使用模板在图像上滑动,输出像素由邻域像素加权计算:

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

其中 w(s,t)w(s,t) 为滤波模板权重。模板权重决定滤波器是平滑、锐化还是检测边缘。

# 图示说明

模板滤波示意图展示了卷积核逐像素滑动的过程:每个输出像素由输入图像中对应邻域的加权和得到。核越大,参与计算的邻域越大,平滑效果越强,但边缘也越容易模糊。

# 平滑空间滤波器

# 均值滤波

均值滤波用邻域平均值替代中心像素,适合降低随机噪声,但会模糊边缘。n×nn\times n 均值模板可写为:

w(s,t)=1n2w(s,t)=\frac{1}{n^2}

窗口 nn 越大,平滑越强,细节损失也越明显。

# 加权均值与高斯滤波

高斯滤波给中心像素更大权重,距离中心越远权重越小。二维高斯函数为:

G(x,y)=12πσ2exp[x2+y22σ2]G(x,y)=\frac{1}{2\pi\sigma^2}\exp\left[-\frac{x^2+y^2}{2\sigma^2}\right]

σ\sigma 越大,平滑范围越宽,噪声抑制更强,但边缘模糊也更明显。

# 中值滤波

中值滤波用邻域灰度中值替代中心像素,对椒盐噪声尤其有效。与均值滤波相比,它能更好地保留边缘,因为极端噪声点不会直接参与平均。

# 锐化空间滤波器

锐化强调灰度突变,用于增强边缘、细线和细节。

# 一阶微分与梯度

梯度幅值可表示为:

f=[GxGy],fGx+Gy\nabla f=\begin{bmatrix}G_x\\G_y\end{bmatrix},\qquad |\nabla f|\approx |G_x|+|G_y|

GxG_xGyG_y 分别表示水平和垂直方向灰度变化。梯度越大,边缘可能性越高。

Sobel 算子的常用模板为:

Sx=[101202101],Sy=[121000121]S_x= \begin{bmatrix} -1 & 0 & 1\\ -2 & 0 & 2\\ -1 & 0 & 1 \end{bmatrix}, \quad S_y= \begin{bmatrix} -1 & -2 & -1\\ 0 & 0 & 0\\ 1 & 2 & 1 \end{bmatrix}

SxS_x 检测垂直边缘,SyS_y 检测水平边缘。

# 拉普拉斯算子

拉普拉斯是二阶微分算子:

2f(x,y)=f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)4f(x,y)\nabla^2 f(x,y)=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y)

常用模板为:

[010141010]\begin{bmatrix} 0 & 1 & 0\\ 1 & -4 & 1\\ 0 & 1 & 0 \end{bmatrix}

拉普拉斯对细节和噪声都敏感,实际增强时常先平滑再锐化。增强公式可写为:

g(x,y)=f(x,y)2f(x,y)g(x,y)=f(x,y)-\nabla^2 f(x,y)

其中 g(x,y)g(x,y) 为锐化后的图像。