Main Content

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

imboxfilt

イメージの 2 次元ボックス フィルター処理

説明

B = imboxfilt(A) は 2 次元の 3 x 3 ボックス フィルターを使用してイメージ A をフィルター処理します。ボックス フィルターは平均値フィルターとも呼ばれます。

B = imboxfilt(A,filterSize)filterSize で指定されたサイズの 2 次元ボックス フィルターを使用してイメージ A をフィルター処理します。

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

すべて折りたたむ

イメージをワークスペースに読み取ります。

A = imread('cameraman.tif');

11 x 11 フィルターを使用して平均値フィルター処理を実行します。

localMean = imboxfilt(A,11);

元のイメージとフィルター処理されたイメージを並べて表示します。

imshowpair(A,localMean,'montage')

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

イメージをワークスペースに読み取ります。

A = imread('cameraman.tif');

イメージのデータ型を double に変更し、整数のオーバーフローを回避します。

A = double(A);

イメージのフィルター処理で 15 x 15 ボックス フィルターを使用して局所領域の和を計算します。平均値ではなく、局所領域の和を計算するには、NormalizationFactor パラメーターを 1 に設定します。

localSums = imboxfilt(A, 15, 'NormalizationFactor',1);

元のイメージとフィルター処理されたイメージを並べて表示します。

imshowpair(A,localSums,'montage')

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

入力引数

すべて折りたたむ

フィルター処理されるイメージ。任意の次元の数値配列として指定します。RGB イメージなど、入力イメージが 2 次元を超える場合 (ndims(I)>2)、imboxfilt は高次元のすべての 2 次元平面でボックス フィルター処理を実行します。

AInfs または NaNs が含まれている場合、imboxfilt の動作は定義されません。これは積分イメージ ベースのフィルター処理を使用する場合に発生する可能性があります。出力での InfsNaNs の伝播を制限するために、代わりに imfilter を使用することを検討してください。

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

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

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

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: B = imboxfilt(A,5,'Padding','circular');

パディング パターン。以下のいずれかの値または数値スカラーとして指定します。スカラー値を指定した場合、イメージの境界の外に位置する入力イメージのピクセルは、暗黙的にスカラー値をもつと仮定されます。

説明
'circular'イメージの境界の外に位置する入力イメージの値は、入力イメージが周期的であると暗黙的に仮定して計算されます。
'replicate'イメージの境界の外に位置する入力イメージの値は、最近傍のイメージ境界値と等しいと仮定します。
'symmetric'イメージの境界の外に位置する入力イメージの値を計算するには、配列の境界をまたぐ配列の鏡像を使用します。

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

ボックス フィルターに適用される正規化係数。数値スカラーとして指定します。

既定の設定の 'NormalizationFactor' には平均値フィルターの効果があります。出力イメージのピクセルは、filterSize で決定される近傍のイメージの局所的な平均になります。局所領域の和を求めるには、'NormalizationFactor'1 に設定します。このような状況でオーバーフローを回避するために入力イメージを double クラスに変換して倍精度イメージを使用することを検討してください。

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

出力引数

すべて折りたたむ

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

アルゴリズム

imboxfilt は畳み込みに基づいたフィルター処理または積分イメージ フィルター処理を使用してフィルター処理を実行します。どちらのフィルター処理方法を使用するかは、内部の経験則を用いて決定されます。

拡張機能

バージョン履歴

R2015b で導入

すべて展開する