对灰度图像添加椒盐噪声,用中值滤波器、最大值滤波器、最小值滤波器分别处理含噪图像,给出MATLAB代码
时间: 2024-10-23 18:03:30 浏览: 38
对灰度图像添加椒盐噪声通常涉及随机地将一些像素设置为0(代表黑色)或255(代表白色),这可以模拟噪声点。然后,使用中值滤波器、最大值滤波器和最小值滤波器来平滑并去除这些噪声。以下是简单的MATLAB代码示例:
首先,假设我们有一个名为`img`的灰度图像,下面是如何添加椒盐噪声和应用各种滤波器的步骤:
```matlab
% 加载图像
img = imread('your_image.png'); % 替换为实际图片路径
% 添加椒盐噪声
saltNoiseProb = 0.05; % 指定噪声的概率
noisy_img = imnoise(img, 's&p', saltNoiseProb, 0);
% 中值滤波器
median_filtered = medfilt2(noisy_img, [3 3]); % 使用3x3窗口大小
% 最大值滤波器
max_filtered = imfilter(noisy_img, ones(3) / 9, 'replicate', 'same');
% 最小值滤波器
min_filtered = imfilter(noisy_img, -ones(3) / 9, 'replicate', 'same');
figure;
subplot(2, 2, 1), imshow(img, 'InitialMagnification', 'fit');
title('Original Image');
subplot(2, 2, 2), imshow(noisy_img, 'InitialMagnification', 'fit');
title('Noisy Image');
subplot(2, 2, 3), imshow(median_filtered, 'InitialMagnification', 'fit');
title('Median Filtered');
subplot(2, 2, 4), imshow(max_filtered, 'InitialMagnification', 'fit');
title('Max Filtered');
imshow(min_filtered, 'InitialMagnification', 'fit');
title('Min Filtered');
```
这里,`imnoise`函数用于添加椒盐噪声,`medfilt2`用于中值滤波,`imfilter`用于最大值和最小值滤波。`replicate`选项保持边缘像素不变。
阅读全文