Main Content

integralBoxFilter3

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

説明

B = integralBoxFilter3(A) は、3 x 3 x 3 ボックス フィルターを使用して積分イメージ A をフィルター処理します。

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

また、B = integralBoxFilter3(___,"NormalizationFactor",normFactor) は、ボックス フィルターに適用される正規化係数を指定します。

すべて折りたたむ

3 次元 MRI データを読み込みます。

volData = load('mri');
vol = squeeze(volData.D);

フィルター近傍の半径でイメージ ボリュームをパディングします。

filterSize = [5 5 3];
padSize = (filterSize-1)/2;
volPad = padarray(vol, padSize, 'replicate', 'both');

パディングされた入力の 3 次元インテグラル イメージを計算します。

intVol = integralImage3(volPad);

[5 5 3] のフィルターを使用して 3 次元インテグラル イメージをフィルター処理します。

volFilt = integralBoxFilter3(intVol, filterSize);

入力引数

すべて折りたたむ

フィルター処理する積分イメージ。3 次元数値配列として指定します。

integralBoxFilter3 では、入力の積分イメージ AintegralImage3 で計算した垂直の積分イメージであることが必要です。integralBoxFilter3 は回転した積分イメージをサポートしません。integralImage3 で返された積分イメージの最初の行、列および平面はパディングされていると仮定します。

データ型: double

ボックス フィルターのサイズ。正の奇数の整数または正の奇数の整数の 3 要素ベクトルとして指定します。filterSize がスカラーの場合、integralBoxFilter3 は立方体ボックス フィルターを使用します。

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

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

既定では、正規化係数の値は、filterSize がスカラーの場合は 1/filterSize.^3filterSize がベクトルの場合は 1/prod(filterSize) です。既定の設定には平均値フィルターの効果があります。出力イメージのピクセルは、イメージの局所的な平均になります。

局所領域の和を求めるには、normFactor1 に設定します。このような状況でオーバーフローを回避するために入力イメージをデータ型 double に変換して倍精度イメージを使用することを検討してください。

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

出力引数

すべて折りたたむ

フィルター処理されたイメージ。3 次元数値配列として返されます。integralBoxFilter3 はパディングなしでフィルター処理が計算された部分のみを返します。

データ型: double

バージョン履歴

R2015b で導入