Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

imgradientxy

2 次元イメージの方向勾配の検出

説明

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

[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')

Figure contains an axes object. The axes object with title Directional Gradients: x-direction, Gx (left), y-direction, Gy (right), using Prewitt method contains an object of type image.

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

I = imread('coins.png');

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

[Gx,Gy] = imgradientxy(I);

方向勾配を表示します。

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

Figure contains an axes object. The axes object with title Directional Gradients Gx and Gy, Using Sobel Method contains an object of type image.

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

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

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

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

Figure contains an axes object. The axes object with title Gradient Magnitude (Left) and Gradient Direction (Right) contains an object of type image.

入力引数

すべて折りたたむ

入力イメージ。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 で導入