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) 范围内的像素,像素值不变。

