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

来源:百度知道 编辑:UC知道 时间:2024/06/25 23:24:48
我想给一幅二维图像加人随机噪声,请高手给出代码应该如何添加,高斯白噪声的添加我是知道的,想知道的是如何添加随机噪声,或者泊松噪声。请给出代码。
我知道是用imnoise函数来添加,但在imnoise函数中添加随机噪声和泊松噪声时参数设置老出错,希望高手指点,给出代码

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

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

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

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) %对椒盐躁声中值滤波
subp