# 频域图像增强知识点总结 > 基于蓝桥杯省赛一等奖选手的实验报告整理 > 适用:数字图像处理(DIP)课程复习 --- ## 一、傅里叶变换基础 ### 1.1 核心概念 **傅里叶变换**:将图像从**空域**(像素位置)转换到**频域**(频率成分) ``` 空域图像 f(x,y) --傅里叶变换--> 频域 F(u,v) ↑ ↓ 像素值 频率成分 (空间位置) (高低频分布) ``` ### 1.2 图像中的频率 | 频率类型 | 对应图像特征 | 在频谱中的位置 | |---------|------------|-------------| | **低频** | 平滑区域、整体轮廓、缓慢变化 | 频谱中心 | | **高频** | 边缘、细节、噪声、快速变化 | 频谱四周 | ### 1.3 MATLAB 核心函数 ```matlab % 1. 二维傅里叶变换 F = fft2(f); % f 是输入图像,F 是频域表示 % 2. 频谱中心化(将低频移到中心) Fshift = fftshift(F); % 3. 显示频谱(取对数增强可视化) S = log(1 + abs(Fshift)); imshow(S, []); % 4. 逆傅里叶变换(回到空域) f_back = ifft2(ifftshift(Fshift)); ``` ### 1.4 为什么需要 fftshift? ``` fft2 输出: fftshift 后: 低频在四角 低频在中心 高频在中心 高频在四周 [高 低] [低 高] [低 高] --> [高 低] ``` **便于观察**:人眼习惯看中心为原点的图像 --- ## 二、频域滤波器 ### 2.1 理想滤波器 #### 理想低通滤波器(ILPF) **原理**:只允许低频通过,高频全部阻断 $$ H(u,v) = \begin{cases} 1 & \text{if } D(u,v) \leq D_0 \\ 0 & \text{if } D(u,v) > D_0 \end{cases} $$ 其中 $D(u,v) = \sqrt{(u-M/2)^2 + (v-N/2)^2}$ 是到中心的距离 **效果**: - ✅ 平滑图像,去除噪声 - ❌ 产生**振铃效应**(边缘有波纹) #### 理想高通滤波器(IHPF) $$ H(u,v) = \begin{cases} 0 & \text{if } D(u,v) \leq D_0 \\ 1 & \text{if } D(u,v) > D_0 \end{cases} $$ **效果**: - ✅ 增强边缘,图像锐化 - ❌ 也会丢失部分低频信息(图像变暗) --- ### 2.2 巴特沃斯滤波器(Butterworth) **改进**:平滑过渡,减少振铃效应 #### 巴特沃斯低通滤波器(BLPF) $$ H(u,v) = \frac{1}{1 + [D(u,v)/D_0]^{2n}} $$ | 参数 | 含义 | |------|------| | $D_0$ | 截止频率 | | $n$ | 阶数,控制过渡带陡峭程度 | **特点**: - $n=1$:最平滑,振铃效应最小 - $n$ 越大:越接近理想滤波器,振铃效应越明显 #### 巴特沃斯高通滤波器(BHPF) $$ H(u,v) = \frac{1}{1 + [D_0/D(u,v)]^{2n}} $$ --- ### 2.3 高斯滤波器(Gaussian) **最优**:完全没有振铃效应 #### 高斯低通滤波器(GLPF) $$ H(u,v) = e^{-D^2(u,v)/2D_0^2} $$ #### 高斯高通滤波器(GHPF) $$ H(u,v) = 1 - e^{-D^2(u,v)/2D_0^2} $$ **特点**: - ✅ 频域和空域都是高斯形状 - ✅ 傅里叶变换后仍是高斯 - ✅ **无振铃效应** --- ## 三、三种滤波器对比 | 特性 | 理想滤波器 | 巴特沃斯滤波器 | 高斯滤波器 | |------|-----------|--------------|-----------| | **过渡带** | 突变(阶跃) | 平滑过渡 | 最平滑 | | **振铃效应** | 严重 | 中等(n小则小) | 无 | | **边缘保留** | 差 | 较好 | 最好 | | **计算复杂度** | 低 | 中 | 中 | | **推荐使用** | 教学演示 | 一般应用 | 高质量要求 | --- ## 四、频域滤波步骤 ``` 步骤1: 读入图像 f ↓ 步骤2: 傅里叶变换 F = fft2(f) ↓ 步骤3: 频谱中心化 Fshift = fftshift(F) ↓ 步骤4: 构建滤波器 H(与Fshift同尺寸) ↓ 步骤5: 频域相乘 G = H .* Fshift ↓ 步骤6: 逆变换 g = ifft2(ifftshift(G)) ↓ 步骤7: 取实部 result = real(g) ``` --- ## 五、高通滤波 + 常数偏移 ### 5.1 为什么需要偏移? 高通滤波会丢失低频信息 → 图像整体变暗 ### 5.2 解决方案 $$ H_{enhanced}(u,v) = a + b \cdot H_{HP}(u,v) $$ 或空域处理: $$ g(x,y) = f(x,y) + k \cdot g_{HP}(x,y) $$ **效果**:在保留边缘的同时,保持图像整体亮度 --- ## 六、实验结果分析 ### 6.1 低通滤波效果 | 截止频率 $D_0$ | 效果 | |---------------|------| | 小(如30) | 非常模糊,只剩轮廓 | | 中(如60) | 适度平滑,噪声减少 | | 大(如120) | 轻微平滑,细节保留 | ### 6.2 高通滤波效果 | 参数 | 效果 | |------|------| | 小 $D_0$ | 更多高频通过,边缘增强明显 | | 大 $D_0$ | 较少高频通过,效果温和 | ### 6.3 振铃效应对比 ``` 理想低通: 巴特沃斯(n=2): 高斯低通: 边缘有波纹 边缘较平滑 边缘最自然 ████ ████ ████ █ █ █ █ █ █ █ █ █ █ █ █ ``` --- ## 七、关键公式总结 | 滤波器 | 低通公式 | 高通公式 | |--------|---------|---------| | **理想** | $H=1$ if $D\leq D_0$ | $H=0$ if $D\leq D_0$ | | **巴特沃斯** | $\frac{1}{1+(D/D_0)^{2n}}$ | $\frac{1}{1+(D_0/D)^{2n}}$ | | **高斯** | $e^{-D^2/2D_0^2}$ | $1-e^{-D^2/2D_0^2}$ | --- ## 八、MATLAB 代码示例 ### 8.1 理想低通滤波器 ```matlab function H = ideal_lowpass(M, N, D0) % 创建频率网格 u = 0:(M-1); v = 0:(N-1); idx = find(u > M/2); u(idx) = u(idx) - M; idy = find(v > N/2); v(idy) = v(idy) - N; [V, U] = meshgrid(v, u); D = sqrt(U.^2 + V.^2); % 理想低通滤波器 H = double(D <= D0); end ``` ### 8.2 巴特沃斯低通滤波器 ```matlab function H = butterworth_lowpass(M, N, D0, n) % 创建频率网格 u = 0:(M-1); v = 0:(N-1); idx = find(u > M/2); u(idx) = u(idx) - M; idy = find(v > N/2); v(idy) = v(idy) - N; [V, U] = meshgrid(v, u); D = sqrt(U.^2 + V.^2); % 巴特沃斯低通滤波器 H = 1 ./ (1 + (D./D0).^(2*n)); end ``` ### 8.3 高斯低通滤波器 ```matlab function H = gaussian_lowpass(M, N, D0) % 创建频率网格 u = 0:(M-1); v = 0:(N-1); idx = find(u > M/2); u(idx) = u(idx) - M; idy = find(v > N/2); v(idy) = v(idy) - N; [V, U] = meshgrid(v, u); D = sqrt(U.^2 + V.^2); % 高斯低通滤波器 H = exp(-(D.^2) ./ (2*D0^2)); end ``` ### 8.4 完整滤波流程 ```matlab % 读取图像 f = imread('image.jpg'); f = rgb2gray(f); f = im2double(f); % 傅里叶变换 F = fft2(f); Fshift = fftshift(F); % 构建滤波器(以高斯低通为例) [M, N] = size(f); D0 = 50; % 截止频率 H = gaussian_lowpass(M, N, D0); % 频域滤波 G = H .* Fshift; % 逆变换 g = ifft2(ifftshift(G)); g = real(g); % 显示结果 figure; subplot(1,2,1), imshow(f), title('原图'); subplot(1,2,2), imshow(g), title('滤波后'); ``` --- ## 九、常见考点 ### 9.1 简答题 1. **为什么 fftshift 后低频在中心?** - 答:fft2 输出的频谱中,低频分布在四角,高频在中心。fftshift 将频谱四象限对调,使低频移到中心,便于观察和处理。 2. **三种滤波器的振铃效应对比?** - 答:理想滤波器振铃最严重(阶跃突变),巴特沃斯中等(n越小越平滑),高斯无振铃(最平滑过渡)。 3. **高通滤波后图像为什么变暗?** - 答:高通滤波去除了低频(直流分量和缓变区域),只保留高频(边缘),导致图像整体亮度下降。解决方法:加常数偏移或与原图叠加。 ### 9.2 计算题 1. **给定 4×4 图像,计算傅里叶变换** 2. **设计截止频率为 30 的理想低通滤波器** 3. **比较不同阶数巴特沃斯滤波器的差异** --- ## 十、一句话总结 > **频域滤波 = 在频域用滤波器 H 乘以频谱 F,再逆变换回空域** > > **低通 = 保留低频(平滑),高通 = 保留高频(锐化)** > > **高斯最优无振铃,理想最差有振铃,巴特沃斯居中可调** --- ## 参考资料 - 实验报告:频域图像增强设计性实验 - 教材:《数字图像处理》(冈萨雷斯) - MATLAB 官方文档:Image Processing Toolbox --- *文档整理:2026年4月27日* *整理者:蓝桥杯省赛一等奖选手*