Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

imgradient3

3 次元イメージの勾配の大きさと方向の検出

説明

[Gmag,Gazimuth,Gelevation] = imgradient3(I) は、3 次元のグレースケール イメージまたはバイナリ イメージ I の勾配の大きさ Gmag、勾配の方向 Gazimuth および勾配の仰角 Gelevation を返します。

[Gmag,Gazimuth,Gelevation] = imgradient3(I,method) は、指定された method を使用して勾配の大きさ、方向、および仰角を計算します。

[Gmag,Gazimuth,Gelevation] = imgradient3(Gx,Gy,Gz) は、それぞれ x 方向、y 方向、および z 方向の方向勾配 GxGy、および Gz から勾配の大きさ、方向、および仰角を計算します。

すべて折りたたむ

3 次元データをワークスペースに読み取り、処理の準備を行います。

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

勾配を計算します。

[Gmag, Gaz, Gelev] = imgradient3(vol);

勾配の大きさをモンタージュとして可視化します。

figure, 
montage(reshape(Gmag,sz(1),sz(2),1,sz(3)),'DisplayRange',[])
title('Gradient magnitude')

Figure contains an axes object. The axes object with title Gradient magnitude contains an object of type image.

入力引数

すべて折りたたむ

入力イメージ。3 次元グレースケール イメージまたは 3 次元バイナリ イメージとして指定します。

勾配演算子。次のいずれかの値に指定します。

意味

"sobel"

ソーベル勾配演算子: ピクセルの勾配は、3 x 3 x 3 の近傍内のピクセルの重み付き和です。たとえば、奥行 (z) 方向では、3 つの平面での重みは次のようになります。

平面 z-1平面 z平面 z+1
[ 1  3  1 
  3  6  3 
  1  3  1 ]    
[ 0  0  0 
  0  0  0 
  0  0  0 ]    
[ -1  -3  -1 
  -3  -6  -3 
  -1  -3  -1 ]    

"prewitt"

プレウィット勾配演算子: ピクセルの勾配は、3 x 3 x 3 の近傍内のピクセルの重み付き和です。たとえば、奥行 (z) 方向では、3 つの平面での重みは次のようになります。

平面 z-1平面 z平面 z+1
[ 1  1  1 
  1  1  1 
  1  1  1 ]    
[ 0  0  0 
  0  0  0 
  0  0  0 ]    
[ -1  -1  -1 
  -1  -1  -1 
  -1  -1  -1 ]    

"central"

中心差分勾配: ピクセルの勾配は、近傍ピクセルの重み付き差です。たとえば、奥行 (z) 方向では、dI/dz = (I(z+1) - I(z-1))/2 です。

"intermediate"

中間差分勾配: ピクセルの勾配は、隣接するピクセルと現在のピクセルの間の差です。たとえば、奥行 (z) 方向では、dI/dz = I(z+1) - I(z) です。

イメージの境界で勾配演算子を適用するときに、imgradient3 はイメージの境界外の値は最も近いイメージ境界値と等価であると見なします。この動作は imfilter"replicate" 境界オプションと似ています。

データ型: char | string

水平方向勾配。3 次元数値配列として指定します。横 (x) 軸は列の添字の増加方向を指しています。関数 imgradientxyz を使用して Gx を計算できます。

垂直方向勾配。Gx と同じサイズの 3 次元数値配列として指定します。縦 (y) 軸は行の添字の増加方向を指しています。関数 imgradientxyz を使用して Gy を計算できます。

奥行方向勾配。Gx と同じサイズの 3 次元数値配列として指定します。奥行 (z) 軸は平面の添字の増加方向を指しています。関数 imgradientxyz を使用して Gz を計算できます。

出力引数

すべて折りたたむ

勾配ベクトルの大きさ。イメージ I、または方向勾配 GxGyGz と同じサイズの 3 次元数値配列として返されます。

Gmag はデータ型 double です。ただし、入力イメージまたはいずれかの方向勾配がデータ型 single の場合を除きます。この場合、Gmag はデータ型 single になります。

方位角。勾配の大きさ Gmag と同じサイズの 3 次元数値配列として返されます。Gazimuth には、正の x 軸から x-y 平面に投影した点までを測定した範囲 [-180, 180] 内の角度 (度単位) が含まれます。

Gazimuth はデータ型 double です。ただし、入力イメージまたはいずれかの方向勾配がデータ型 single の場合を除きます。この場合、Gmag はデータ型 single になります。

方位角と仰角

Geometry of the radial line, the projection of the point in the x-y plane, the azimuthal angle, and the gradient elevation.

勾配の仰角。勾配の大きさ Gmag と同じサイズの 3 次元数値配列として返されます。Gelevation には、半径方向の直線と x-y 平面の間で測定した範囲 [-90, 90] 内の角度 (度単位) が含まれます。

Gelevation はデータ型 double です。ただし、入力イメージまたはいずれかの方向勾配がデータ型 single の場合を除きます。この場合、Gmag はデータ型 single になります。

アルゴリズム

imgradient3 は勾配の出力を正規化しません。勾配の出力イメージの範囲が入力イメージの範囲と一致する必要がある場合、使用する method 引数に応じた勾配イメージの正規化を検討します。たとえば、ソーベル カーネルの正規化係数は 1/44、プレウィットの正規化係数は 1/18 です。

拡張機能

バージョン履歴

R2016a で導入

すべて展開する