Main Content

imgradientxy

2차원 영상의 방향 기울기 찾기

설명

예제

[Gx,Gy] = imgradientxy(I)는 회색조 영상 또는 이진 영상 I의 방향 기울기 GxGy를 반환합니다.

예제

[Gx,Gy] = imgradientxy(I,method)는 지정된 method를 사용하여 방향 기울기를 반환합니다.

예제

모두 축소

영상을 작업 공간으로 읽어 들입니다.

I = imread("coins.png");

Prewitt 기울기 연산자를 사용하여 x 방향 기울기와 y 방향 기울기를 계산합니다.

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

방향 기울기를 표시합니다.

imshowpair(Gx,Gy,"montage");
title("Directional Gradients Gx and Gy, Using Prewitt Method")

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

영상을 작업 공간으로 읽어 들입니다.

I = imread('coins.png');

x 방향 기울기와 y 방향 기울기를 계산합니다. 기본적으로, imgradientxy는 Sobel 기울기 연산자를 사용합니다.

[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"

Sobel 기울기 연산자. 픽셀의 기울기는 3×3 이웃에 있는 픽셀들의 가중치를 적용한 합입니다. 세로(y) 방향의 가중치는 다음과 같습니다.

[ 1  2  1 
  0  0  0 
 -1 -2 -1 ]
x 방향에서는 가중치가 전치됩니다.

"prewitt"

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 인수에 따라 기울기 영상을 정규화하는 것이 좋습니다. 예를 들어, Sobel 커널의 경우 정규화 인자는 1/8이고, Prewitt 커널의 경우 1/6입니다.

확장 기능

버전 내역

R2012b에 개발됨

모두 확장