ドキュメンテーション

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

imgradientxy

イメージの方向勾配

説明

[Gx,Gy] = imgradientxy(I) は、グレースケール イメージまたはバイナリ イメージ I の方向勾配 GxGy を返します。

オプションで、方向勾配の計算を GPU を使用して実行できます (Parallel Computing Toolbox™ が必要)。詳細は、GPU での画像処理を参照

[Gx,Gy] = imgradientxy(I,method) は、指定された method を使用して方向勾配を返します。

すべて折りたたむ

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

I = imread('coins.png');

プレウィット勾配演算子を使用して、x 方向勾配と y 方向勾配を計算します。

[Gx, Gy] = imgradientxy(I,'prewitt');

方向勾配を表示します。

figure
imshowpair(Gx, Gy, 'montage');
title('Directional Gradients: x-direction, Gx (left), y-direction, Gy (right), using Prewitt method')

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

I = imread('coins.png');

x 方向勾配と y 方向勾配を計算します。既定では、imgradientxy はソーベル勾配演算子を使用します。

[Gx,Gy] = imgradientxy(I);

方向勾配を表示します。

imshowpair(Gx,Gy,'montage')
title('Directional Gradients Gx and Gy, Using Sobel Method')

方向勾配を使用して勾配の大きさと方向を計算します。

[Gmag,Gdir] = imgradient(Gx,Gy);

勾配の大きさと方向を表示します。

imshowpair(Gmag,Gdir,'montage')
title('Gradient Magnitude (Left) and Gradient Direction (Right)')

入力引数

すべて折りたたむ

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

データ型: single | double | int8 | int32 | uint8 | uint16 | uint32 | logical

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

方法説明
'sobel'

ソーベル勾配演算子: ピクセルの勾配は、3 行 3 列の近傍内のピクセルの重み付き和です。垂直 (y) 方向では、重みは次のようになります。

[ 1  2  1 
  0  0  0 
 -1 -2 -1 ]
x 方向では、重みが転置されます。

'prewitt'

プレウィット勾配演算子: ピクセルの勾配は、3 行 3 列の近傍内のピクセルの重み付き和です。垂直 (y) 方向では、重みは次のようになります。

[ 1  1  1 
  0  0  0 
 -1 -1 -1 ]
x 方向では、重みが転置されます。

'central'

中心差分勾配: ピクセルの勾配は、近傍ピクセルの重み付き差です。y 方向では、dI/dy = (I(y+1) - I(y-1))/2 です。

'intermediate'

中間差分勾配: ピクセルの勾配は、隣接するピクセルと現在のピクセルの間の差です。y 方向では、dI/dy = I(y+1) - I(y) です。

データ型: char | string

出力引数

すべて折りたたむ

水平方向勾配。イメージ I と同じサイズの数値行列として返されます。横 (x) 軸は列の添字の増加方向を指しています。Gx のクラスは double です。ただし、入力イメージ I のクラスが single の場合は、Gx のクラスは single になります。

データ型: single | double

垂直方向勾配。イメージ I と同じサイズの数値行列として返されます。縦 (y) 軸は行の添字の増加方向を指しています。Gy のクラスは double です。ただし、入力イメージ I のクラスが single の場合は、Gy のクラスは single になります。

データ型: single | double

ヒント

  • イメージの境界で勾配演算子を適用するときに、イメージの境界外の値は最も近いイメージ境界値と等価であると見なされます。

アルゴリズム

アルゴリズムでは、x 軸と y 軸に対する方向勾配が計算されます。x 軸は右向きの列に沿って定義され、y 軸は下向きの行に沿って定義されます。

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

拡張機能

R2012b で導入