ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

imnoise

イメージにノイズを付加

説明

J = imnoise(I,'gaussian') は、グレースケール イメージ I にゼロ平均、分散 0.01 のホワイト ガウス ノイズを加えます。

オプションで、ノイズの追加を GPU を使用して実行できます (Parallel Computing Toolbox™ が必要)。詳細は、GPU での画像処理を参照

J = imnoise(I,'gaussian',m) は平均 m と分散 0.01 を持つホワイト ガウス ノイズを加えます。

J = imnoise(I,'gaussian',m,var_gauss) は平均 m と分散 var_gauss を持つホワイト ガウス ノイズを加えます。

J = imnoise(I,'localvar',var_local) はゼロ平均、局所分散 var_local を持つホワイト ガウス ノイズを加えます。

J = imnoise(I,'localvar',intensity_map,var_local) はゼロ平均のホワイト ガウス ノイズを加えます。ノイズの局所分散 var_local は、I 内のイメージ強度値の関数です。イメージ強度値のノイズ分散へのマッピングは、ベクトル intensity_map によって指定されます。

J = imnoise(I,'poisson') は、データに人工的なノイズを追加する代わりに、データからポアソン ノイズを作成します。詳細は、アルゴリズムを参照してください。

J = imnoise(I,'salt & pepper') は、既定のノイズ密度 0.05 のごま塩ノイズを追加します。これは、約 5% のピクセルに影響を与えます。

J = imnoise(I,'salt & pepper',d) は、ごま塩ノイズを追加します。ここで、d はノイズ密度です。これは、約 d*numel(I) 個のピクセルに影響を与えます。

J = imnoise(I,'speckle') は乗法性ノイズを追加します。ここでは、式 J = I+n*I を使います。ただし、n は、平均が 0、分散が 0.05 の一様分布のランダム ノイズです。

J = imnoise(I,'speckle',var_speckle) は乗法性ノイズに分散 var_speckle を追加します。

すべて折りたたむ

グレースケール イメージを読み取り、それを表示します。

I = imread('eight.tif');
imshow(I)

イメージにノイズ密度 0.02 のごま塩ノイズを追加します。結果を表示します。

J = imnoise(I,'salt & pepper',0.02);
imshow(J)

入力引数

すべて折りたたむ

グレースケール イメージ。数値行列として指定します。I が 2 次元より大きい場合、イメージは RGB イメージではなく、多次元グレースケール イメージとして扱われます。

imnoise では、データ型 double および single のピクセル値が [0, 1] の範囲内にあると想定しています。関数 rescale を使用して、想定される範囲にピクセル値を調整できます。イメージが、[0,1] の範囲外の値を持つ double 型または single 型の場合、imnoise は、ノイズを追加する前に入力ピクセル値を [0, 1] の範囲にクリッピングします。

メモ

ポアソン ノイズは、int16 型のイメージで利用できません。

データ型: single | double | int16 | uint8 | uint16

ガウス ノイズの平均。数値スカラーとして指定します。

ガウス ノイズの分散。数値スカラーとして指定します。

ガウス ノイズの局所分散。以下のいずれかとして指定します。

  • I と同じサイズの数値行列。

  • intensity_map と同じ長さの数値ベクトル。

ガウス ノイズ分散にマップされる強度値。数値ベクトルとして指定します。値は、[0, 1] の範囲に正規化されます。

コマンド plot(intensity_map,var_local) を使用して、ノイズ分散 var_local とイメージ強度の関数関係をプロットできます。

ごま塩ノイズのノイズ密度。数値スカラーとして指定します。ノイズは、約 d*numel(I) 個のピクセルに適用されます。

乗法性ノイズの分散。数値スカラーとして指定します。

出力引数

すべて折りたたむ

ノイズを含むイメージ。入力イメージ I と同じデータ型の数値行列として返されます。データ型 double または single のイメージの場合、関数 imnoise は、ノイズを追加した後に出力ピクセル値を [0, 1] の範囲にクリッピングします。

アルゴリズム

  • 'gaussian''localvar''speckle' のノイズ タイプに対する平均と分散パラメーターは、常に、イメージが [0, 1] の範囲の double クラスであるかのように指定されます。入力イメージが異なるクラスの場合に、関数 imnoise は、イメージを double になるよう変換し、指定されたタイプとパラメーターによってノイズを追加します。さらに、ピクセル値を [0, 1] の範囲にクリッピングし、ノイズを付加されたイメージを入力と同じクラスに再変換します。

  • ポアソン分布は、入力イメージ I のデータ型によって次のように異なります。

    • I が倍精度の場合、入力ピクセル値は 1e12 でスケーリングされたポアソン分布の平均として解釈されます。たとえば、入力ピクセルが 5.5e-12 の値を持つ場合、対応する出力ピクセルは 5.5 の平均を持つポアソン分布から生成され、1e12 でスケール ダウンします。

    • I が単精度の場合、倍率は 1e6 を使用します。

    • Iuint8 または uint16 の場合、入力のピクセル値は、スケーリングなしで直接使用されます。たとえば、uint8 の入力のピクセルが 10 の値をもつ場合、対応する出力ピクセルは、平均 10 のポアソン分布から生成されます。

  • 'salt & pepper' ノイズを密度 d でイメージに追加するために、imnoise は、最初に開区間 (0, 1) の標準一様分布からランダムな確率値を各ピクセルに割り当てます。

    • 確率値が (0, d/2) の範囲のピクセルの場合、ピクセル値は 0 に設定されます。0 に設定されるピクセルの数は、約 d*numel(I)/2 個です。

    • 確率値が [d/2, d) の範囲のピクセルの場合、ピクセル値はイメージ データ型の最大値に設定されます。最大値に設定されるピクセルの数は、約 d*numel(I)/2 個です。

    • 確率値が [d, 1) の範囲のピクセルの場合、ピクセル値は変更されません。

拡張機能

参考

|

R2006a より前に導入