imgradientxyz
3 次元イメージの方向勾配の検出
説明
例
ソーベル法を使用した 3 次元イメージの方向勾配の計算
3 次元データを読み取り、処理の準備を行います。
volData = load('mri');
sz = volData.siz;
vol = squeeze(volData.D);
方向勾配を計算します。
[Gx, Gy, Gz] = imgradientxyz(vol);
方向勾配をモンタージュとして可視化します。
figure, montage(reshape(Gx,sz(1),sz(2),1,sz(3)),'DisplayRange',[]) title('Gradient magnitude along X')
figure, montage(reshape(Gy,sz(1),sz(2),1,sz(3)),'DisplayRange',[]) title('Gradient magnitude along Y')
figure, montage(reshape(Gz,sz(1),sz(2),1,sz(3)),'DisplayRange',[]) title('Gradient magnitude along Z')
入力引数
I
— 入力イメージ
3 次元グレースケール イメージ | 3 次元バイナリ イメージ
入力イメージ。3 次元グレースケール イメージまたは 3 次元バイナリ イメージとして指定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
method
— 勾配演算子
'sobel'
(既定値) | 'prewitt'
| 'central'
| 'intermediate'
勾配演算子。次のいずれかの値に指定します。
値 | 意味 | ||||||
---|---|---|---|---|---|---|---|
| ソーベル勾配演算子: ピクセルの勾配は、3 x 3 x 3 の近傍内のピクセルの重み付き和です。たとえば、奥行 (z) 方向では、3 つの平面での重みは次のようになります。
| ||||||
| プレウィット勾配演算子: ピクセルの勾配は、3 x 3 x 3 の近傍内のピクセルの重み付き和です。たとえば、奥行 (z) 方向では、3 つの平面での重みは次のようになります。
| ||||||
'central' | 中心差分勾配: ピクセルの勾配は、近傍ピクセルの重み付き差です。たとえば、奥行 (z) 方向では、 | ||||||
'intermediate' | 中間差分勾配: ピクセルの勾配は、隣接するピクセルと現在のピクセルの間の差です。たとえば、奥行 (z) 方向では、 |
イメージの境界で勾配演算子を適用するときに、imgradientxyz
はイメージの境界外の値は最も近いイメージ境界値と等価であると見なします。この動作は imfilter
の 'replicate'
境界オプションと似ています。
データ型: char
| string
出力引数
Gx
— 水平方向勾配
3 次元数値配列
水平方向勾配。イメージ I
と同じサイズの数値行列として返されます。横 (x) 軸は列の添字の増加方向を指しています。Gx
のクラスは double
です。ただし、入力イメージ I
のクラスが single
の場合は、Gx
のクラスは single
になります。
データ型: single
| double
Gy
— 垂直方向勾配
3 次元数値配列
垂直方向勾配。イメージ I
と同じサイズの数値行列として返されます。縦 (y) 軸は行の添字の増加方向を指しています。Gy
のクラスは double
です。ただし、入力イメージ I
のクラスが single
の場合は、Gy
のクラスは single
になります。
データ型: single
| double
Gz
— 奥行方向勾配
3 次元数値配列
奥行方向勾配。イメージ I
と同じサイズの 3 次元数値配列として返されます。奥行 (z) 軸は平面の添字の増加方向を指しています。Gz
のクラスは double
です。ただし、入力イメージ I
のクラスが single
の場合は、Gz
のクラスは single
になります。
アルゴリズム
imgradientxyz
は勾配の出力を正規化しません。勾配の出力イメージの範囲が入力イメージの範囲と一致する必要がある場合、使用する method
引数に応じた勾配イメージの正規化を検討します。たとえば、ソーベル カーネルの正規化係数は 1/44、プレウィットの正規化係数は 1/18 です。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
imgradientxyz
では C コードの生成がサポートされています (MATLAB® Coder™ が必要)。詳細については、イメージ処理のコード生成を参照してください。コードを生成する際、入力引数
method
はコンパイル時の定数でなければなりません。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意および制限:
コードを生成する際、入力引数
method
はコンパイル時の定数でなければなりません。
バージョン履歴
R2016a で導入
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)