imnoise
向图像添加噪声
语法
说明
添加零均值高斯白噪声。噪声的局部方差 J
= imnoise(I
,'localvar',intensity_map
,var_local
)var_local
是 I
中图像强度值的函数。图像强度值到噪声方差的映射由向量 intensity_map
指定。
添加方差为 J
= imnoise(I
,'speckle',var_speckle
)var_speckle
的乘性噪声。
示例
输入参数
输出参量
算法
指定
'gaussian'
、'localvar'
和'speckle'
噪声类型的均值和方差参数时始终假设图像的类为double
,范围为 [0, 1]。如果输入图像为不同类,则imnoise
函数会将图像转换为double
,并根据指定的类型和参数添加噪声,将像素值裁剪到范围 [0, 1],然后将噪声图像转换回与输入图像相同的类。泊松分布取决于输入图像
I
的数据类型:如果
I
为双精度,则会将输入像素值放大1e12
倍解释为泊松分布的均值。例如,如果输入像素的值为5.5e-12
,则对应的输出像素将根据均值为 5.5 的泊松分布生成,然后缩小为1e12
分之一。如果
I
为单精度,则使用的缩放因子是1e6
。如果
I
为uint8
或uint16
,则直接使用输入像素值,无需缩放。例如,如果uint8
输入中一个像素的值为 10,则对应的输出像素将根据均值为 10 的泊松分布生成。
要将密度为
d
的'salt & pepper'
噪声添加到图像中,imnoise
首先从开区间 (0,1) 上的一个标准均匀分布中为每个像素分配一个随机概率值。对于概率值在范围 (0,
d
/2) 内的像素,像素值设置为0
。设置为0
的像素数约为d*numel(I)/2
个。对于概率值在 [
d
/2,d
) 范围内的像素,像素值设置为图像数据类型的最大值。设置为最大值的像素数约为d*numel(I)/2
个。对于概率值在 [
d
, 1) 范围内的像素,像素值不变。