matlab中对 所选图添加噪声(可以选择高斯噪声或椒盐噪声),次数为 10 次、 30 次和 50 次; 2)对添加噪声后的图像去噪; 3)输出一幅图,该图包含七幅子图,共三排,第一排是 原图,第二排是添加噪声后的图;第三排是对应去噪声后的图像; 4)每幅图的顶头都加上小标题。
时间: 2024-10-08 13:16:08 浏览: 20
MATLAB实现向图像中添加高斯噪声和椒盐噪声
5星 · 资源好评率100%
在MATLAB中,你可以按照以下步骤来实现这个需求:
1. **添加噪声**:
- 对于高斯噪声,可以使用`imnoise`函数,例如:
```matlab
% 假设img是原始图像
noise_levels = [10, 30, 50]; % 噪声级别列表
for i = 1:length(noise_levels)
noisy_img_i = imnoise(img, 'gaussian', 0, noise_levels(i)); % 高斯噪声
% 或者使用saltpepper噪声 (replace 'gaussian' with 'salt & pepper')
noisy_img_i = imnoise(img, 'salt & pepper', 'Probability', noise_levels(i)/100);
end
```
2. **去噪处理**:
MATLAB有多种去噪算法,如均值滤波、中值滤波、Wiener滤波等。这里以中值滤波为例:
```matlab
denoised_imgs = medfilt2(noisy_img_i); % 使用中值滤波去噪
```
3. **创建并显示结果**:
- 创建子图网格 (`subplot`) 并填充数据:
```matlab
figure;
rows = 3; cols = ceil(length(noise_levels) / rows);
for i = 1:length(noise_levels)
subplot(rows, cols, i+1);
title(['Original (Noise Level = ' num2str(noise_levels(i)) ')']);
switch i
case 1
imshow(img), axis off; % 原始图
case 1: % 第二排
imshow(noisy_img_i), axis off;
otherwise
imshow(denoised_imgs(i)), axis off;
end
end
```
4. **输出结果**:
- 确保所有子图设置为合适的比例,并保存成图片文件:
```matlab
saveas(gcf, 'noisy_and_denoised_images.png'); % 保存图片到指定路径
```
阅读全文