ドキュメンテーション

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

integralBoxFilter

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

構文

B = integralBoxFilter(intA)
B = integralBoxFilter(intA,filterSize)
B = integralBoxFilter(___,Name,Value)

説明

B = integralBoxFilter(intA) は、3 x 3 ボックス フィルターを使用して積分イメージ intA をフィルター処理します。フィルター処理されたイメージ B が返されます。

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

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

コード生成 サポート: あり。

MATLAB Function ブロック サポート: あり。

すべて折りたたむ

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

A = imread('cameraman.tif');

フィルター近傍の半径でイメージをパディングします。この例では 11 x 11 のフィルターを使用します。

filterSize = [11 11];
padSize = (filterSize-1)/2;
Apad = padarray(A, padSize, 'replicate','both');

パディングされた入力イメージの積分イメージを計算します。

intA = integralImage(Apad);

積分イメージをフィルター処理します。

B = integralBoxFilter(intA, filterSize);

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

figure
imshow(A)
title('Original Image')
figure
imshow(B,[])
title('Filtered Image')

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

 A = imread('cameraman.tif');

フィルター近傍の半径 ((11-1)/2 で計算) でイメージをパディングします。

padSize = [5 5];
Apad = padarray(A, padSize, 'replicate', 'both');

パディングされた入力の積分イメージを計算します。

intA = integralImage(Apad);

[11 1] の垂直フィルターを使用して積分イメージをフィルター処理します。

Bvert = integralBoxFilter(intA, [11 1]);

入力イメージのサイズを保持するために出力をトリミングして表示します。

Bvert = Bvert(:,6:end-5);

[1 11] の水平フィルターを使用して積分イメージをフィルター処理します。

Bhorz = integralBoxFilter(intA, [1 11]);

入力イメージのサイズを保持するために出力をトリミングします。

Bhorz = Bhorz(6:end-5,:);

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

figure,
imshow(A)
title('Original Image')
figure,
imshow(Bvert,[])
title('Filtered with Vertical Filter')
figure,
imshow(Bhorz,[])
title('Filtered with Horizontal Filter')

入力引数

すべて折りたたむ

フィルター処理する積分イメージ。任意の次元の実数の非スパース行列として指定します。積分イメージは垂直でなければなりません。integralBoxFilter は回転した積分イメージをサポートしません。integralImage で返される積分イメージの最初の行と列はゼロ パディングされていると仮定します。

例: B = integralBoxFilter(A);

データ型: double

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

例: B = integralBoxFilter(A,5);

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

名前/値のペアの引数

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

例: B = integralBoxFilter(A,5,’NormalizationFactor’,1);

すべて折りたたむ

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

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

例: B = integralBoxFilter(A,5,’NormalizationFactor’,1);

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

出力引数

すべて折りたたむ

フィルター処理されたイメージ。double クラスの実数の非スパース行列として返されます。integralBoxFilter はパディングなしでフィルター処理が計算された部分のみを返します。

詳細

すべて折りたたむ

コード生成

この関数では MATLAB® Coder™ を使用した C コードの生成がサポートされています。詳細は、「画像処理のコード生成」を参照してください。

コード生成時には、以下の点に注意してください。

  • 'NormalizationFactor' パラメーターはコンパイル時の定数でなければなりません。

MATLAB Function ブロック

この関数は Simulink の MATLAB Function ブロックで使用できます。

この関数を MATLAB Function ブロックで使用する場合、以下に注意してください。

  • 引数 FilterSize はコンパイル時の定数でなければなりません。

R2015b で導入

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