在 MATLAB 的imnoise()
函数中,当噪声类型为“散斑”时,文档清楚地说明它是乘性噪声并说明了基础方程。
J = imnoise(I,'speckle',v) 使用等式J = I+n*I向图像 I 添加乘性噪声,其中 n 是均值为 0 方差为 v 的均匀分布随机噪声。 v 的默认值为0.04。
但是,没有为高斯选项提供这样的方程。还有一个单独的类型叫做'localvar'。所以使用时的方程imnoise(I, gaussian, mean_noise, variance_noise)
应该是
J(x,y) = I(x,y) + g(mean_noise, sqrt((variance_noise))
此外,我的假设:
- 这种噪声
g
与图像的空间坐标无关 - 这种噪声
g
与那些空间坐标的强度无关 g
mean_noise
是从均值和标准差的高斯分布生成的高斯随机数sigma = sqrt(variance_noise)
我对吗?
重大更新
我不接受先前的答案以消除一些混乱。所以我检查了 matlab 中“imnoise”的代码,它的作用是:
b = a + sqrt(p4)*randn(sizeA) + p3;其中
b - 添加噪声的图像
a - 原始图像
p4 - 方差
p3 - 均值
randn() 的范围是多少?我随机检查,这会产生高于 1 的值,例如 1.85。randn() 的文档没有提及有关范围的任何内容。这很奇怪。