如何在matlab中为一幅图像加入随机噪声

2024-12-26 15:23:25
推荐回答(4个)
回答1:

M=imread('dl011.jpg') %读取MATLAB中的名为cameraman的图像
subplot(3,3,1)
imshow(M) %显示原始图像
title('original')
P1=imnoise(M,'gaussian',0.02) %加入高斯躁声
subplot(3,3,2)
imshow(P1) %加入高斯躁声后显示图像
title('gaussian noise');
P2=imnoise(M,'salt & pepper',0.02) %加入椒盐躁声
subplot(3,3,3)
imshow(P2) %%加入椒盐躁声后显示图像
title('salt & pepper noise');
g=medfilt2(P1) %对高斯躁声中值滤波
subplot(3,3,5)
imshow(g)
title('medfilter gaussian')
h=medfilt2(P2) %对椒盐躁声中值滤波
subplot(3,3,6)
imshow(h)
title('medfilter salt & pepper noise')
l=[1 1 1 %对高斯躁声算术均值滤波
1 1 1
1 1 1];
l=l/9;
k=conv2(P1,l)
subplot(3,3,8)
imshow(k,[])
title('arithmeticfilter gaussian')
%对椒盐躁声算术均值滤波
d=conv2(P2,l)
subplot(3,3,9)
imshow(d,[])
title('arithmeticfilter salt & pepper noise')

回答2:

用imnoise可以添加高斯、泊松、椒盐、和乘性噪声

你可以看一看imnoise的帮助文档,里面说的很清楚。
比如添加泊松噪声是没有参数的,它生成的随机数是以该像素的灰度值为均值的。
其他各种类型的参数数量也是不同的。

回答3:

load woman;
init = 2055615866;
randn('seed',init);
x = X + 18*randn(size(X));
nbc = size(map,1);
image(wcodemat(X,nbc));

回答4:

我只用来做过信号分析,还真没有添加噪声过,惭愧