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");

方向勾配を表示します。

imshowpair(Gx,Gy,"montage");
title("Directional Gradients Gx and Gy, 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

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

Method説明
"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 で導入

すべて展開する