写一个添加两种噪声(高斯噪声和椒盐噪声)且两种噪声有三种不同水平,并对图像进行中值滤波的matlab程序
时间: 2023-12-04 07:02:14 浏览: 152
好的,下面是一个示例的MATLAB程序,用于添加两种噪声(高斯噪声和椒盐噪声),并对图像进行中值滤波:
```matlab
% 读取原始图像
originalImage = imread('input.jpg');
% 高斯噪声水平
gaussianLevels = [0.01, 0.02, 0.03]; % 三个不同的方差值
% 椒盐噪声水平
saltPepperLevels = [0.05, 0.10, 0.15]; % 三个不同的噪声密度值
% 添加高斯噪声和椒盐噪声,并进行中值滤波
for i = 1:length(gaussianLevels)
for j = 1:length(saltPepperLevels)
% 添加高斯噪声
gaussianNoise = imnoise(originalImage, 'gaussian', 0, gaussianLevels(i));
% 添加椒盐噪声
saltPepperNoise = imnoise(originalImage, 'salt & pepper', saltPepperLevels(j));
% 对添加了噪声的图像进行中值滤波
gaussianFiltered = medfilt2(gaussianNoise);
saltPepperFiltered = medfilt2(saltPepperNoise);
% 显示结果
subplot(length(gaussianLevels), length(saltPepperLevels), (i-1)*length(saltPepperLevels)+j);
imshowpair(gaussianFiltered, saltPepperFiltered, 'montage');
title(sprintf('高斯方差=%.2f, 椒盐噪声密度=%.2f', gaussianLevels(i), saltPepperLevels(j)));
end
end
```
请注意,此程序假设原始图像为名为“input.jpg”的文件。你需要将此文件名更改为你的实际图像文件名。此外,你可以根据需要调整噪声的参数值和其他参数以获得更好的结果。
这个程序会生成一个图像网格,每个网格中包含一个添加了不同水平噪声并进行中值滤波后的图像对(高斯噪声和椒盐噪声)。每个图像对的标题显示了使用的噪声水平。
希望这能满足你的需求!如果你有任何其他问题,请随时提问。
阅读全文