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(平均ノイズ, sqrt((分散ノイズ))
さらに、私の仮定:
- このノイズ
g
は、画像の空間座標と相関していません - このノイズ
g
は、それらの空間座標での強度と相関していません g
mean_noise
平均と標準偏差のガウス分布から生成されたガウス乱数sigma = sqrt(variance_noise)
私は正しいですか?
主要な更新いくつかの混乱を解消するために、以前の回答を受け入れていません。そのため、matlab で「imnoise」のコードを確認したところ、次のようになりました。
b = a + sqrt(p4)*randn(sizeA) + p3; ここで、
b - ノイズが追加された画像
a - 元の画像
p4 - 分散
p3 - 平均
randn() の範囲は? ランダムにチェックしたところ、1.85 などの 1 より大きい値が生成されました。また、 randn() のドキュメントには、範囲について何も言及されていません。これはかなり奇妙です。