ドキュメンテーション

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

imgaussfilt

イメージの 2 次元ガウス フィルター処理

説明

B = imgaussfilt(A) は、標準偏差 0.5 の 2 次元ガウス平滑化カーネルでイメージ A をフィルター処理し、フィルター処理されたイメージを B に返します。

オプションで、フィルター処理を GPU を使用して実行できます (Parallel Computing Toolbox™ が必要)。詳細は、GPU での画像処理を参照

B = imgaussfilt(A,sigma) は、sigma で指定された標準偏差の 2 次元ガウス平滑化カーネルでイメージ A をフィルター処理します。

B = imgaussfilt(___,Name,Value) は、フィルター処理の特性を制御する名前と値のペアの引数を使用します。

すべて折りたたむ

フィルター処理するイメージを読み取ります。

I = imread('cameraman.tif');

標準偏差 2 の ガウス フィルターでイメージをフィルター処理します。

Iblur = imgaussfilt(I, 2);

すべての結果を表示して比較します。

subplot(1,2,1)
imshow(I)
title('Original Image');
subplot(1,2,2)
imshow(Iblur)
title('Gaussian filtered image, \sigma = 2')

この例では、GPU でガウス平滑化演算を実行する方法を説明します。

フィルター処理するイメージを gpuArray に読み取ります。

I = gpuArray(imread('cameraman.tif'));

ガウス平滑化を実行します。

Iblur = imgaussfilt(I, 2);

すべての結果を表示して比較します。

subplot(1,2,1), imshow(I), title('Original Image');

subplot(1,2,2), imshow(Iblur)
title('Gaussian filtered image, \sigma = 2')

入力引数

すべて折りたたむ

フィルター処理されるイメージ。任意の次元の数値配列として指定します。

GPU を使用してフィルター処理を実行するには、A を数値配列を含む gpuArray として指定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

ガウス分布の標準偏差。正の数値または正の数値の 2 要素ベクトルとして指定します。スカラーを指定した場合、imgaussfilt は正方形ガウス カーネルを使用します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: B = imgaussfilt(A,'FilterSize',3);

ガウス フィルターのサイズ。正の奇数の整数のスカラーまたは 2 要素ベクトルとして指定します。スカラーを指定した場合、imgaussfilt は正方形フィルターを使用します。既定のフィルター サイズは 2*ceil(2*sigma)+1 です。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

イメージ パディング。次のいずれかに指定します。

説明
数値スカラー定数値の要素によってイメージをパディングします。
'circular'

次元内で巡回的に要素を繰り返しパディングします。

'replicate'

配列の境界の要素を繰り返すことによってパディングします。

'symmetric'

イメージをそれ自体の鏡像でパディングします。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

フィルター処理を実行する領域。以下のいずれかの値に指定します。

説明
'auto'内部の経験則に基づいて空間領域または周波数領域で畳み込みを実行します。
'frequency'周波数領域で畳み込みを実行します。
'spatial'空間領域で畳み込みを実行します。

データ型: char | string

出力引数

すべて折りたたむ

フィルター処理されたイメージ。入力イメージ A と同じクラスとサイズの数値配列として返されます。

GPU を使用してイメージをフィルター処理する場合、B は数値配列を含む gpuArray として返されます。

ヒント

  • イメージ AInf または NaN が含まれている場合、imgaussfilt の周波数領域でのフィルター処理は定義されません。これは、'FilterDomain' パラメーターに 'frequency' を設定するか、'auto' を設定し、なおかつ imgaussfilt で周波数領域のフィルター処理を使用した場合に発生します。imfilter と同様の方法で出力での InfNaN の伝播を制限するために、'FilterDomain' パラメーターに 'spatial' を設定することを検討してください。

  • 'FilterDomain' パラメーターに 'auto' を設定すると、imgaussfilt は内部の経験則を使用して、空間領域と周波数領域のいずれのフィルター処理が高速かを判定します。この経験則はマシンに依存し、各種構成によって異なる場合があります。最適なパフォーマンスを得られるように、'spatial''frequency' の両方のオプションを試し、使用するイメージとカーネル サイズに最適なフィルター処理領域を決定します。

  • 'Padding' パラメーターを指定しない場合、imgaussfilt は既定の設定で 'replicate' パディングを使用します。これは imfilter で使用される既定の設定とは異なります。

拡張機能

R2015a で導入