写一个在三种水平下的高斯噪声和椒盐噪声,对图片应用拉普拉斯算子的matlab程序
时间: 2023-12-11 07:03:02 浏览: 58
以下是一个在三种水平下添加高斯噪声和椒盐噪声,并对图像应用拉普拉斯算子的 MATLAB 程序示例:
```matlab
% 读取图像
img = imread('your_image.jpg');
% 添加三种水平的高斯噪声
noise_level = [0.1, 0.3, 0.5]; % 噪声水平(0到1之间)
gaussian_img = cell(1,3); % 存储添加噪声后的图像
for i = 1:3
noisy_img = imnoise(img, 'gaussian', 0, noise_level(i));
gaussian_img{i} = noisy_img;
end
% 添加三种水平的椒盐噪声
salt_pepper_img = cell(1,3); % 存储添加噪声后的图像
for i = 1:3
noisy_img = imnoise(img, 'salt & pepper', noise_level(i));
salt_pepper_img{i} = noisy_img;
end
% 应用拉普拉斯算子
filtered_gaussian_img = cell(1,3); % 存储滤波后的图像(高斯噪声)
filtered_salt_pepper_img = cell(1,3); % 存储滤波后的图像(椒盐噪声)
for i = 1:3
filtered_gaussian_img{i} = imfilter(gaussian_img{i}, fspecial('laplacian'));
filtered_salt_pepper_img{i} = imfilter(salt_pepper_img{i}, fspecial('laplacian'));
end
% 显示结果
figure;
for i = 1:3
subplot(2, 6, i);
imshow(gaussian_img{i});
title(sprintf('Gaussian Noise\nLevel %.1f', noise_level(i)));
subplot(2, 6, i+3);
imshow(filtered_gaussian_img{i});
title('Laplacian Filter');
subplot(2, 6, i+6);
imshow(salt_pepper_img{i});
title(sprintf('Salt & Pepper Noise\nLevel %.1f', noise_level(i)));
subplot(2, 6, i+9);
imshow(filtered_salt_pepper_img{i});
title('Laplacian Filter');
end
```
请确保将 `'your_image.jpg'` 替换为你要处理的实际图像的路径。这段代码将显示包含高斯噪声和椒盐噪声的图像,并分别应用拉普拉斯算子进行滤波处理。
阅读全文