メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

imnoise

イメージにノイズを付加

説明

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

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)

Figure contains an axes object. The hidden axes object contains an object of type image.

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

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

Figure contains an axes object. The hidden axes object contains an object of type image.

入力引数

すべて折りたたむ

グレースケール イメージ。任意の次元の数値配列として指定します。

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

メモ

ポアソン ノイズでは、imnoise はデータ型 int16 のイメージをサポートしていません。

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

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

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

ガウス ノイズの局所分散。数値配列または数値ベクトルとして指定します。

  • intensity_map 引数を指定した場合、var_local は同じ長さのベクトルでなければなりません。

  • それ以外の場合、var_local は入力イメージ I と同じサイズの配列でなければなりません。

イメージ強度からノイズ分散へのマッピング。数値ベクトルとして指定します。imnoise 関数は、イメージの強度値を範囲 [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 より前に導入

すべて展開する

参考

|