このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
integralBoxFilter
積分イメージの 2 次元ボックス フィルター処理
構文
説明
は、B
= integralBoxFilter(A
,filterSize
)filterSize
で指定されたサイズの 2 次元ボックス フィルターを使用して積分イメージ A
をフィルター処理します。
また、
は、ボックス フィルターに適用される正規化係数を指定します。B
= integralBoxFilter(___,"NormalizationFactor",normFactor
)
例
積分イメージのフィルター処理
イメージをワークスペースに読み取ります。
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')
入力引数
A
— フィルター処理する積分イメージ
数値配列
フィルター処理する積分イメージ。任意の次元の数値配列として指定します。
積分イメージは垂直でなければなりません。integralBoxFilter
は回転した積分イメージをサポートしません。integralImage
で返される積分イメージの最初の行と列はゼロ パディングされていると仮定します。
データ型: double
filterSize
— ボックス フィルターのサイズ
3
(既定値) | 正の奇数の整数 | 正の奇数の整数の 2 要素ベクトル
ボックス フィルターのサイズ。正の奇数の整数または正の奇数の整数の 2 要素ベクトルとして指定します。filterSize
がスカラーの場合、integralBoxFilter
は正方形ボックス フィルターを使用します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
normFactor
— ボックス フィルターに適用される正規化係数
数値スカラー
ボックス フィルターに適用される正規化係数。数値スカラーとして指定します。
既定では、正規化係数の値は、filterSize
がスカラーの場合は 1/filterSize.^2
、filterSize
がベクトルの場合は 1/prod(filterSize)
です。既定の設定には平均値フィルターの効果があります。出力イメージのピクセルは、イメージの局所的な平均になります。
局所領域の和を求めるには、normFactor
を 1
に設定します。このような状況でオーバーフローを回避するために入力イメージをデータ型 double
に変換して倍精度イメージを使用することを検討してください。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
出力引数
B
— フィルター処理されたイメージ
数値配列
フィルター処理されたイメージ。数値配列として返されます。integralBoxFilter
はパディングなしでフィルター処理が計算された部分のみを返します。
データ型: double
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
integralBoxFilter
では C コードの生成がサポートされています (MATLAB® Coder™ が必要)。詳細については、イメージ処理のコード生成を参照してください。引数
normFactor
はコンパイル時の定数でなければなりません。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意および制限:
引数
normFactor
はコンパイル時の定数でなければなりません。
バージョン履歴
R2015b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)