matlab中二维傅里叶变换去除图像条纹噪声程序
时间: 2023-08-21 19:06:32 浏览: 99
图像消除噪声的matlab程序
可以使用以下程序实现二维傅里叶变换去除图像条纹噪声:
```matlab
% 读入图像
I = imread('image.jpg');
% 转换为灰度图像
I = rgb2gray(I);
% 傅里叶变换
F = fft2(I);
% 中心化
Fc = fftshift(F);
% 计算幅度谱
S = abs(Fc);
% 计算相位谱
P = angle(Fc);
% 去除噪声
S = medfilt2(S, [3 3]);
% 重构
Fcr = S .* exp(1i*P);
% 反傅里叶变换
Icr = ifft2(ifftshift(Fcr));
% 显示原始图像和去噪后的图像
subplot(1,2,1);imshow(I);title('Original Image');
subplot(1,2,2);imshow(abs(Icr),[]);title('Denoised Image');
```
程序首先读入图像并转换为灰度图像,然后进行二维傅里叶变换,并对变换结果进行中心化。接着,程序计算幅度谱和相位谱,使用中值滤波器去除噪声,并重新构造频域图像。最后,程序进行反傅里叶变换,将频域图像转换为空域图像,并显示原始图像和去噪后的图像。
阅读全文