matlab使用高斯滤波和中值滤波对影像进行频域滤波处理的具体代码
时间: 2024-06-01 18:13:14 浏览: 13
以下是使用高斯滤波和中值滤波对影像进行频域滤波处理的MATLAB代码示例:
%% 读入图像
I = imread('image.jpg');
imshow(I, []);
%% 频域滤波
% 转换为灰度图像
I_gray = rgb2gray(I);
% 计算傅里叶变换
F = fft2(I_gray);
% 将直流分量移到频谱中心
F_shift = fftshift(F);
% 定义高斯滤波器
sigma = 8;
w = 2 * sigma + 1;
[x, y] = meshgrid(-w/2:w/2, -w/2:w/2);
H = exp(-(x.^2 + y.^2) / (2*sigma.^2));
H = H / sum(H(:));
% 使用高斯滤波器进行频域滤波
F_gauss = F_shift .* H;
% 将频谱中心移回原位
F_gauss_shift = ifftshift(F_gauss);
% 反变换得到滤波后的图像
I_gauss = uint8(real(ifft2(F_gauss_shift)));
% 中值滤波
I_median = medfilt2(I_gray);
% 显示滤波前后的图像
figure;
subplot(1, 3, 1), imshow(I_gray, []);
subplot(1, 3, 2), imshow(I_gauss, []);
subplot(1, 3, 3), imshow(I_median, []);
请注意,这里演示的只是一种频域滤波方法,还有许多其他的滤波器和滤波方法可以选择,具体应该根据实际需求进行选择。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)