编程,在一幅图像上添加高斯噪声
时间: 2024-03-06 22:49:14 浏览: 64
好的,以下是MATLAB代码实现:
```matlab
% 读入一幅图像
I = imread('your_image.jpg');
% 定义高斯噪声参数,mean表示均值,var表示方差
mean = 0;
var = 0.01;
% 添加高斯噪声
J = imnoise(I, 'gaussian', mean, var);
% 显示原始图像和添加噪声后的图像
figure;
subplot(1, 2, 1);
imshow(I);
title('Original Image');
subplot(1, 2, 2);
imshow(J);
title('Image with Gaussian Noise');
% 计算添加噪声后的图像的峰值信噪比 PSNR
peaksnr = psnr(J, I);
fprintf('The Peak-SNR value is %0.4f\n', peaksnr);
```
需要注意的是,这里使用了imnoise函数来添加高斯噪声,其中'gaussian'表示添加的是高斯噪声,mean表示均值,var表示方差。您可以根据需要调整这些参数来实现不同的效果。此外,为了计算添加噪声后的图像的峰值信噪比,我们同样使用了psnr函数,它需要原始图像和添加噪声后的图像作为输入。
相关问题
(1)读入一幅图像,添加高斯噪声;自行编程对加入噪声的图像使用均值滤波平滑加 噪声图像,同屏显示原图像、加噪声图像和处理后的图像。 (2)读入一幅图像,添加椒盐噪声;对加入噪声的图像使用中值滤波,同屏显示原图 像、加噪声图像和处理后的图像。matlab实现
(1) 添加高斯噪声并使用均值滤波:
```matlab
% 读入原图像
img = imread('lena.png');
% 添加高斯噪声
noisy_img = imnoise(img, 'gaussian', 0, 0.01);
% 使用均值滤波平滑加噪声图像
smooth_img = filter2(fspecial('average', 3), noisy_img)/255;
% 显示原图像、加噪声图像和处理后的图像
subplot(1,3,1), imshow(img), title('Original Image');
subplot(1,3,2), imshow(noisy_img), title('Noisy Image');
subplot(1,3,3), imshow(smooth_img), title('Smoothed Image');
```
(2) 添加椒盐噪声并使用中值滤波:
```matlab
% 读入原图像
img = imread('lena.png');
% 添加椒盐噪声
noisy_img = imnoise(img, 'salt & pepper', 0.1);
% 使用中值滤波平滑加噪声图像
smooth_img = medfilt2(noisy_img);
% 显示原图像、加噪声图像和处理后的图像
subplot(1,3,1), imshow(img), title('Original Image');
subplot(1,3,2), imshow(noisy_img), title('Noisy Image');
subplot(1,3,3), imshow(smooth_img), title('Smoothed Image');
```
用matlab读入一幅图像,添加高斯噪声;自行编程对加入噪声的图像使用均值滤波平滑加 噪声图像,同屏显示原图像、加噪声图像和处理后的图像。
以下是Matlab代码实现:
```matlab
% 读入原始图像
img = imread('lena.png');
imshow(img);
title('Original Image');
% 添加高斯噪声
noisy_img = imnoise(img, 'gaussian', 0, 0.01);
figure;
imshow(noisy_img);
title('Noisy Image');
% 使用均值滤波平滑加噪声图像
filter_size = 3;
h = ones(filter_size) / filter_size^2;
smooth_img = imfilter(noisy_img, h);
figure;
imshow(smooth_img);
title('Smoothed Image');
```
其中,`imread`函数用于读入原始图像,`imnoise`函数用于添加高斯噪声,`imfilter`函数用于进行均值滤波平滑。运行代码后,会弹出三个窗口,分别显示原始图像、加噪声图像和处理后的图像。
阅读全文