このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
imboxfilt
イメージの 2 次元ボックス フィルター処理
説明
は 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')
指定した近傍の局所領域の和の計算
イメージをワークスペースに読み取ります。
A = imread('cameraman.tif');
イメージのデータ型を double
に変更し、整数のオーバーフローを回避します。
A = double(A);
イメージのフィルター処理で 15 x 15 ボックス フィルターを使用して局所領域の和を計算します。平均値ではなく、局所領域の和を計算するには、NormalizationFactor
パラメーターを 1 に設定します。
localSums = imboxfilt(A, 15, 'NormalizationFactor',1);
元のイメージとフィルター処理されたイメージを並べて表示します。
imshowpair(A,localSums,'montage')
入力引数
A
— フィルター処理されるイメージ
数値配列
フィルター処理されるイメージ。任意の次元の数値配列として指定します。RGB イメージなど、入力イメージが 2 次元を超える場合 (ndims(I)>2
)、imboxfilt
は高次元のすべての 2 次元平面でボックス フィルター処理を実行します。
A
に Infs
または NaNs
が含まれている場合、imboxfilt
の動作は定義されません。これは積分イメージ ベースのフィルター処理を使用する場合に発生する可能性があります。出力での Infs
と NaNs
の伝播を制限するために、代わりに imfilter
を使用することを検討してください。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
filterSize
— ボックス フィルターのサイズ
3
(既定値) | 正の奇数の整数 | 正の奇数の整数の 2 要素ベクトル
ボックス フィルターのサイズ。正の奇数の整数または正の奇数の整数の 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');
Padding
— パディング パターン
'replicate'
(既定値) | 'circular'
| 'symmetric'
| 数値スカラー
パディング パターン。以下のいずれかの値または数値スカラーとして指定します。スカラー値を指定した場合、イメージの境界の外に位置する入力イメージのピクセルは、暗黙的にスカラー値をもつと仮定されます。
値 | 説明 |
---|---|
'circular' | イメージの境界の外に位置する入力イメージの値は、入力イメージが周期的であると暗黙的に仮定して計算されます。 |
'replicate' | イメージの境界の外に位置する入力イメージの値は、最近傍のイメージ境界値と等しいと仮定します。 |
'symmetric' | イメージの境界の外に位置する入力イメージの値を計算するには、配列の境界をまたぐ配列の鏡像を使用します。 |
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| char
| string
NormalizationFactor
— ボックス フィルターに適用される正規化係数
スカラーの場合は 1/filterSize.^2
、ベクトルの場合は 1/prod(filterSize)
(既定値) | 数値スカラー
ボックス フィルターに適用される正規化係数。数値スカラーとして指定します。
既定の設定の 'NormalizationFactor'
には平均値フィルターの効果があります。出力イメージのピクセルは、filterSize
で決定される近傍のイメージの局所的な平均になります。局所領域の和を求めるには、'NormalizationFactor'
を 1
に設定します。このような状況でオーバーフローを回避するために入力イメージを double
クラスに変換して倍精度イメージを使用することを検討してください。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
アルゴリズム
imboxfilt
は畳み込みに基づいたフィルター処理または積分イメージ フィルター処理を使用してフィルター処理を実行します。どちらのフィルター処理方法を使用するかは、内部の経験則を用いて決定されます。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
imboxfilt
では C コードの生成がサポートされています (MATLAB® Coder™ が必要)。汎用のMATLAB Host Computer
ターゲット プラットフォームを選択した場合、プリコンパイルされたプラットフォーム固有の共有ライブラリを使用するコードが、imboxfilt
によって生成されます。共有ライブラリを使用するとパフォーマンスの最適化は維持されますが、コードを生成できるターゲット プラットフォームが限定されます。詳細については、Image Processing Toolbox でサポートされているコード生成のタイプを参照してください。コードを生成する際、すべての文字ベクトルの入力引数はコンパイル時の定数でなければなりません。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意および制限:
コードを生成する際、すべての文字ベクトルの入力引数はコンパイル時の定数でなければなりません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数は、スレッドベースの環境を完全にサポートします。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2015b で導入R2022b: スレッドベース環境のサポート
imboxfilt
は、スレッドベースの環境をサポートするようになりました。
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)