你会用matlab给图像加上高斯噪声吗,请帮我写一段代码
时间: 2023-06-06 13:08:37 浏览: 177
当然,我可以为您提供一段简单的 Matlab 代码对图像加入高斯噪声:
```matlab
img = imread('your_image.jpg'); % 读入原始图像
sigma = 10; % 设置高斯噪声的标准差
noise = uint8(sigma*randn(size(img))); % 生成均值为0,标准差为sigma的高斯噪声
noisy_img = imadd(img, noise); % 图像加上噪声
imshow(noisy_img); % 显示加噪声后的图像
```
以上代码会读入一张名为 "your_image.jpg" 的图像,然后生成一个与原始图像大小相同,均值为0、标准差为10的高斯噪声,最后将噪声加到图像中生成含有噪声的新图像,并在窗口中显示新图像。
相关问题
matlab图像滤除高斯噪声
以下是使用Matlab实现均值滤波去除高斯噪声的示例代码:
```matlab
% 读取图像
image = imread('image.jpg');
% 添加高斯噪声
noisy_image = imnoise(image, 'gaussian', 0, 0.01);
% 定义滤波器大小
filter_size = 3;
% 使用均值滤波器去除噪声
filtered_image = imfilter(noisy_image, fspecial('average', filter_size));
% 显示原始图像和去噪后的图像
subplot(1, 2, 1), imshow(noisy_image), title('Noisy Image');
subplot(1, 2, 2), imshow(filtered_image), title('Filtered Image');
```
这段代码首先读取图像,然后使用`imnoise`函数向图像添加高斯噪声。接下来,定义了滤波器的大小,这里使用了3x3的均值滤波器。最后,使用`imfilter`函数对添加了噪声的图像进行滤波处理,得到去噪后的图像。最后,使用`subplot`和`imshow`函数将原始图像和去噪后的图像显示在一个图像窗口中。
给我一段matlab代码 在图像加入均值为0,方差为0.02的高斯噪声。设计一款滤波器,去除图片中高斯噪声
好的,以下是一段MATLAB代码,可以将图像加入均值为0,方差为0.02的高斯噪声,并设计一款滤波器,去除图片中高斯噪声:
```matlab
% 读取图像
I = imread('lena.png');
% 将图像转换为双精度类型
I = im2double(I);
% 添加高斯噪声
J = imnoise(I, 'gaussian', 0, 0.02);
% 显示添加噪声后的图像
figure;
imshow(J);
title('添加高斯噪声后的图像');
% 设计滤波器
h = fspecial('gaussian', [5 5], 1);
% 对图像进行滤波
K = imfilter(J, h);
% 显示滤波后的图像
figure;
imshow(K);
title('去除高斯噪声后的图像');
```
这段代码首先读取名为“lena.png”的图像,并将其转换为双精度类型。然后,通过imnoise函数将图像添加均值为0,方差为0.02的高斯噪声,得到添加噪声后的图像J。接着,通过fspecial函数设计一个5×5的高斯滤波器h,对图像J进行滤波,得到去除高斯噪声后的图像K。最后,显示添加噪声后的图像和去除噪声后的图像。
阅读全文