ドキュメンテーション

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

imgaussfilt

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

構文

B = imgaussfilt(A)
B = imgaussfilt(A,sigma)
B = imgaussfilt(___,Name,Value,...)
gpuarrayB = imgaussfilt(gpuarrayA,___)

説明

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

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

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

gpuarrayB = imgaussfilt(gpuarrayA,___) は、GPU でフィルター処理を実行します。入力イメージは gpuArray でなければなりません。関数は gpuArray を返します。この構文では Parallel Computing Toolbox™ が必要です。

すべて折りたたむ

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

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')

入力引数

すべて折りたたむ

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

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

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

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

GPU の入力イメージ。gpuArray として指定します。

名前/値のペアの引数

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

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

すべて折りたたむ

ガウス フィルターのサイズ。正の奇数の整数のスカラーまたは 2 要素ベクトルとして指定します。スカラーを指定した場合、フィルターは正方形です。

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

フィルター処理前のイメージに使用されるパディング。次のいずれかの値または数値スカラーとして指定します。スカラー (X) を指定した場合、イメージの境界の外に位置する入力イメージ値は、暗黙的に値 X をもつと仮定されます。

説明
'circular'

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

'replicate'

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

'symmetric'

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

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

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

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

データ型: char

出力引数

すべて折りたたむ

フィルター処理されたイメージ。入力イメージと同じサイズおよびクラスの実数の非スパース行列として返されます。

フィルター処理されたイメージ。gpuArray として返されます。

ヒント

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

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

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

拡張機能

R2015a で導入

この情報は役に立ちましたか?