使用matlab对已有的二维图像添加噪声
时间: 2023-09-12 09:07:12 浏览: 51
可以使用MATLAB中的imnoise函数来添加噪声。该函数可以添加各种类型的噪声,包括高斯噪声、椒盐噪声、泊松噪声等。
以下是一个添加高斯噪声的示例代码:
```matlab
% 读取图像
img = imread('lena.png');
% 添加高斯噪声
noisy_img = imnoise(img, 'gaussian', 0, 0.01);
% 显示原始图像和添加噪声后的图像
subplot(1, 2, 1), imshow(img);
title('Original Image');
subplot(1, 2, 2), imshow(noisy_img);
title('Noisy Image');
```
在上面的代码中,第二行使用`imread`函数读取了一个名为`lena.png`的图像。第四行使用`imnoise`函数添加了高斯噪声,其中`0`表示均值为0,`0.01`表示方差为0.01。最后,使用`subplot`和`imshow`函数将原始图像和添加噪声后的图像显示在同一窗口中。
相关问题
如何使用matlab对图像进行二维fft变换
使用Matlab对图像进行二维FFT变换的步骤如下:
1. 读取图像:使用imread函数读取图像,或者直接使用Matlab自带的图像。
2. 转换为灰度图像:如果图像不是灰度图像,则需要将其转换为灰度图像,使用rgb2gray函数。
3. 对图像进行FFT变换:使用fft2函数对图像进行FFT变换,得到频域图像。
4. 将频域图像进行中心化:使用fftshift函数对频域图像进行中心化。
5. 可视化结果:使用imshow函数可视化原始图像和频域图像。
下面是一个示例代码:
```matlab
% 读取图像
img = imread('lena.png');
% 转换为灰度图像
gray_img = rgb2gray(img);
% 对图像进行FFT变换
fft_img = fft2(gray_img);
% 将频域图像进行中心化
shifted_fft_img = fftshift(fft_img);
% 可视化结果
subplot(1,2,1), imshow(gray_img);
subplot(1,2,2), imshow(log(abs(shifted_fft_img)+1), []);
```
这段代码将原始图像和频域图像水平排列显示。其中,log(abs(shifted_fft_img)+1)用于对频域图像进行对数变换,使其更容易观察。
matlab 二值图像添加高斯噪声
可以使用MATLAB的图像处理工具箱中的imnoise函数来为二值图像添加高斯噪声。以下是一个简单的示例代码:
```matlab
% 读取二值图像
bw = imread('binary_image.bmp');
% 将二值图像转换为灰度图像
gray = uint8(bw) * 255;
% 添加高斯噪声
noisy = imnoise(gray, 'gaussian', 0, 0.01);
% 显示原始图像和添加噪声后的图像
subplot(1,2,1), imshow(gray), title('原始图像');
subplot(1,2,2), imshow(noisy), title('添加噪声后的图像');
```
在这个示例代码中,我们首先读取了一个二值图像,并将其转换为灰度图像。然后使用imnoise函数为灰度图像添加高斯噪声,其中'gaussian'表示添加高斯噪声,0表示噪声的均值,0.01表示噪声的方差。最后使用subplot函数将原始图像和添加噪声后的图像显示在一个图像窗口中。