fft 图像去噪 matlab 代码
时间: 2024-03-28 14:35:10 浏览: 83
fft的matlab实现和fft图像去噪_FFT抽取_fft_matlab_图像处理;_
5星 · 资源好评率100%
当涉及到图像去噪时,快速傅里叶变换(FFT)是一种常用的方法。下面是一个使用MATLAB实现FFT图像去噪的示例代码:
```matlab
% 读取图像
image = imread('input_image.jpg');
% 将图像转换为灰度图像
gray_image = rgb2gray(image);
% 对灰度图像进行FFT变换
fft_image = fft2(double(gray_image));
% 构建滤波器
filter = zeros(size(fft_image));
filter(1:20, 1:20) = 1; % 设置一个20x20的矩形滤波器
% 对频谱图像进行滤波
filtered_image = fft_image .* filter;
% 对滤波后的频谱进行逆FFT变换
restored_image = ifft2(filtered_image);
% 显示原始图像和去噪后的图像
subplot(1, 2, 1), imshow(gray_image), title('原始图像');
subplot(1, 2, 2), imshow(uint8(abs(restored_image))), title('去噪后的图像');
```
这段代码首先读取输入图像,然后将其转换为灰度图像。接下来,对灰度图像进行FFT变换,得到频谱图像。然后,构建一个滤波器,可以根据需要设置不同的滤波器类型和大小。在这个示例中,我们使用一个简单的矩形滤波器。然后,将滤波器应用于频谱图像,得到滤波后的频谱图像。最后,对滤波后的频谱进行逆FFT变换,得到去噪后的图像。最后,通过subplot函数将原始图像和去噪后的图像显示在同一窗口中。
阅读全文