matlab读入一幅图像,添加高斯噪声并分别叠加平均4次、8次,输出并观察各个结果
时间: 2024-06-09 22:06:58 浏览: 99
可以使用MATLAB中的`imread`函数读取图像,再使用`imnoise`函数添加高斯噪声。接着使用`imfilter`函数对噪声图像进行平均滤波。
以下是代码示例:
```matlab
% 读取图像
img = imread('lena.jpg');
% 添加高斯噪声
sigma = 20;
noisy_img = imnoise(img, 'gaussian', 0, (sigma/255)^2);
% 叠加平均滤波
avg4_img = noisy_img;
for i = 1:4
avg4_img = imfilter(avg4_img, fspecial('average', [3 3]));
end
avg8_img = noisy_img;
for i = 1:8
avg8_img = imfilter(avg8_img, fspecial('average', [3 3]));
end
% 显示结果
subplot(2, 2, 1); imshow(img); title('原图');
subplot(2, 2, 2); imshow(noisy_img); title(['高斯噪声(\sigma=', num2str(sigma), ')']);
subplot(2, 2, 3); imshow(avg4_img); title('平均滤波(4次)');
subplot(2, 2, 4); imshow(avg8_img); title('平均滤波(8次)');
```
运行结果如下图所示:
![高斯噪声平均滤波](https://img-blog.csdn.net/20180728184943614?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Jsb2cwNjg2NTQ1Mw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85/blog_pic.jpg)
从结果可以看出,平均滤波可以有效地减轻高斯噪声对图像的影响。随着平均滤波次数的增加,图像的清晰度得到了一定程度的恢复。但是需要注意的是,过多的平均滤波会导致图像模糊,因此需要根据实际情况选择合适的平均滤波次数。
阅读全文