MATLAB对一幅图像依次添加高斯噪声、椒盐噪声,分别运用算术均值滤波、几何均值滤波、中值滤波、修正的阿尔法均值滤波进行图像恢复,比较分析结果。
时间: 2023-10-20 22:07:36 浏览: 305
首先,可以通过以下代码在MATLAB中添加高斯噪声和椒盐噪声:
```matlab
% 添加高斯噪声
img = imread('image.png');
noise_img = imnoise(img,'gaussian',0,0.01);
imwrite(noise_img,'gaussian_noise.png');
% 添加椒盐噪声
img = imread('image.png');
noise_img = imnoise(img,'salt & pepper',0.1);
imwrite(noise_img,'salt_pepper_noise.png');
```
然后,可以分别使用算术均值滤波、几何均值滤波、中值滤波、修正的阿尔法均值滤波进行图像恢复:
```matlab
% 算术均值滤波
img = imread('gaussian_noise.png');
filtered_img = imfilter(img,fspecial('average',[3 3]));
imwrite(filtered_img,'arithmetic_mean_filter.png');
% 几何均值滤波
img = imread('gaussian_noise.png');
filtered_img = exp(imfilter(log(double(img)),ones(3,3),'replicate')).^(1/9);
imwrite(uint8(filtered_img),'geometric_mean_filter.png');
% 中值滤波
img = imread('salt_pepper_noise.png');
filtered_img = medfilt2(img);
imwrite(filtered_img,'median_filter.png');
% 修正的阿尔法均值滤波
img = imread('salt_pepper_noise.png');
filtered_img = alpha_trimmed_filter(img, 5, 2);
imwrite(filtered_img,'alpha_trimmed_filter.png');
```
最后,可以通过比较分析结果来确定最佳的滤波方式。一般来说,中值滤波对于椒盐噪声效果较好,而修正的阿尔法均值滤波对于高斯噪声效果较好。但是,最佳的滤波方式还需要根据具体的情况进行选择。
阅读全文