在MATLAB中运用高斯滤波器对一副图片中含有的高斯白噪声进行过滤,要求给出的代码尽量简洁,同时对每行代码进行详细注释
时间: 2024-03-23 09:41:09 浏览: 44
matlab.rar_matlab 低通滤波_低通滤波器 MATLAB 高斯白噪声_加入 高斯 白噪_数字滤波器 _滤除高斯噪声
5星 · 资源好评率100%
下面是在MATLAB中运用高斯滤波器对一副图片中含有的高斯白噪声进行过滤的代码,注释详细,代码简洁:
```matlab
% 加载原始图片
img = imread('image.jpg');
% 添加高斯白噪声
noisy_img = imnoise(img, 'gaussian', 0, 0.01);
% 定义高斯滤波器的大小和标准差
filter_size = 5;
sigma = 2;
% 创建高斯滤波器
gaussian_filter = fspecial('gaussian', filter_size, sigma);
% 对含有高斯白噪声的图片进行滤波
filtered_img = imfilter(noisy_img, gaussian_filter);
% 显示原始图片、含噪声图片和滤波后的图片
subplot(1,3,1), imshow(img), title('Original');
subplot(1,3,2), imshow(noisy_img), title('Noisy');
subplot(1,3,3), imshow(filtered_img), title('Filtered');
```
首先,使用`imread`函数加载原始图片;然后,使用`imnoise`函数添加高斯白噪声,其中第二个参数指定噪声类型为高斯白噪声,第三个参数为噪声均值(设为0),第四个参数为噪声方差(设为0.01);接着,定义高斯滤波器的大小和标准差;使用`fspecial`函数创建高斯滤波器;最后,使用`imfilter`函数对含有高斯白噪声的图片进行滤波,得到滤波后的图片。使用`subplot`和`imshow`函数将原始图片、含噪声图片和滤波后的图片显示在同一窗口中,方便对比效果。
阅读全文