JA EN ZH

傅里叶滤波去噪 - 频率域图像处理

· 9 分钟阅读

傅里叶变换与图像的频率表示

傅里叶变换将图像从空间域转换到频率域,揭示图像中不同频率成分的分布。这为基于频率特性的图像处理提供了强大工具。

基本概念:

  • 低频:图像中缓慢变化的区域(大面积均匀色块、渐变)。代表图像的整体结构和亮度分布
  • 高频:图像中快速变化的区域(边缘、纹理、噪声)。代表细节和突变
  • 频谱图:2D FFT 的幅度谱,中心为低频(DC 分量),向外频率递增

2D DFT(离散傅里叶变换):

  • 将 MxN 的图像转换为 MxN 的复数矩阵
  • 每个复数的幅度表示该频率的强度,相位表示位置信息
  • 使用 FFT(快速傅里叶变换)算法高效计算,复杂度 O(N log N)

低通滤波器 - 去噪基础

低通滤波器保留低频成分(图像结构)、抑制高频成分(噪声和细节)。是最基本的频率域去噪方法。

常见低通滤波器:

  • 理想低通:截止频率内完全通过,外部完全阻断。会产生振铃效应(Gibbs 现象)
  • 巴特沃斯低通:平滑过渡,n 阶巴特沃斯在截止频率处衰减 3dB。阶数越高越接近理想滤波器
  • 高斯低通:以高斯函数为传递函数,无振铃效应。等价于空间域的高斯模糊

频率域滤波流程:

  • 对图像进行 FFT 得到频谱
  • 将频谱与滤波器传递函数逐元素相乘
  • 对结果进行逆 FFT 得到滤波后的图像

截止频率选择:太低会过度模糊(丢失细节),太高则去噪不充分。通常通过实验或基于噪声频率特性确定。

高通和带通滤波器

高通滤波器保留高频(边缘、细节)、抑制低频(背景)。带通滤波器保留特定频率范围。

高通滤波器:

  • 传递函数 = 1 - 低通传递函数
  • 效果:提取边缘和细节,去除均匀背景
  • 应用:边缘增强、锐化(原图 + 高通结果 = 锐化图像)

带通滤波器:

  • 仅保留特定频率范围内的成分
  • 实现:高通(低截止)x 低通(高截止)
  • 应用:提取特定尺度的纹理,分析周期性结构

带阻(陷波)滤波器:

  • 抑制特定频率范围,保留其余
  • 用于去除已知频率的周期性噪声(如扫描线、摩尔纹)

陷波滤波器 - 周期性噪声去除

陷波滤波器(Notch Filter)针对频谱中特定位置的噪声峰值进行抑制,是去除周期性噪声的最有效方法。

周期性噪声的来源:

  • 电磁干扰(如 50/60Hz 电源干扰)
  • 扫描设备的机械振动
  • 摩尔纹(两个周期性图案的干涉)
  • 传感器的固定模式噪声

陷波滤波流程:

  • 对图像进行 FFT,观察频谱
  • 识别噪声对应的频率峰值(通常表现为频谱中的亮点)
  • 在这些位置放置陷波(将对应频率的幅度设为 0 或大幅衰减)
  • 逆 FFT 恢复去噪图像

陷波形状:可以是圆形(抑制特定频率)、带状(抑制特定方向的频率)或自定义形状。使用高斯衰减而非硬截断可减少伪影。

维纳滤波与逆滤波

维纳滤波在频率域中同时处理去噪和去模糊,是最优线性滤波器(最小均方误差意义下)。

逆滤波:

  • 直接除以退化函数(PSF 的傅里叶变换)恢复原图
  • 问题:在 PSF 频谱接近零的频率处,噪声被极度放大
  • 实际中几乎不可用,除非噪声极低

维纳滤波:

  • 在逆滤波基础上加入噪声功率谱的正则化
  • 在 PSF 频谱小的频率处自动降低恢复增益,避免噪声放大
  • 需要估计信噪比(SNR)或噪声功率谱
  • 是去模糊和去噪的最佳线性折中

参数估计:噪声功率谱可从图像的平坦区域估计。信号功率谱可用自然图像的统计模型(1/f 衰减)近似。实践中常用单一参数 K(噪声信号功率比)简化。

实现指南 - Python 中的傅里叶滤波

使用 NumPy 和 OpenCV 在 Python 中实现频率域图像滤波。

基本流程:

  • import numpy as np, cv2
  • FFT:f = np.fft.fft2(img); fshift = np.fft.fftshift(f)
  • 创建滤波器(与图像同尺寸的掩码)
  • 应用滤波:filtered = fshift * mask
  • 逆 FFT:result = np.abs(np.fft.ifft2(np.fft.ifftshift(filtered)))

高斯低通滤波器创建:

  • 创建与图像同尺寸的网格坐标
  • 计算每个点到中心的距离
  • 应用高斯函数:mask = np.exp(-(dist**2) / (2 * sigma**2))

注意事项:

  • FFT 前对图像进行零填充(扩展到 2 的幂次)可加速计算并避免循环卷积
  • fftshift 将零频移到中心,便于设计对称滤波器
  • 滤波后取实部或幅度,丢弃微小的虚部(数值误差)
  • OpenCV 的 cv2.dft 比 NumPy 的 np.fft.fft2 在大图像上更快

Related Articles

图像频率域分析基础 - 理解空间频率与频谱

系统讲解图像频率域分析的基础概念。涵盖空间频率、傅里叶变换、频谱解读和频率域处理的应用。

图像降噪原理与实践 - 数码照片去噪完全指南

全面解析图像噪声的类型与成因,从经典滤波算法到 AI 降噪的技术演进,涵盖实用降噪工作流程和编程实现。

深入图像压缩算法 - DCT、小波变换与预测编码

深入解析图像压缩的核心算法,包括 JPEG 的 DCT 变换、JPEG 2000 的小波变换,以及 AV1/HEVC 的预测编码技术。

抖动技术 - 用有限颜色表现渐变的类型与应用

对比误差扩散、Bayer 抖动和蓝噪声技术。涵盖原理、特性以及从复古美学到印刷的应用。

图像去模糊原理与实践 - 从运动模糊到散焦恢复

系统讲解图像去模糊技术,涵盖维纳滤波、盲反卷积以及最新深度学习方法的实现细节。

连通域分析与标记 - 独立对象识别与计数

详解图像处理中的连通域分析技术。涵盖标记算法、统计特征提取、细胞计数等实际应用及性能优化方法。

Related Terms