Main Content

gabor

가버 필터 또는 가버 필터 뱅크 만들기

설명

gabor 객체는 지정된 파장과 방향을 갖는 텍스처에 민감한 선형 가버 필터를 나타냅니다.

gabor 함수를 사용하여 단일 가버 필터 또는 가버 필터 뱅크를 만들 수 있습니다. 필터 뱅크는 여러 필터의 세트로 여러 파장과 방향 및 기타 선택적 파라미터의 조합을 나타냅니다. 예를 들어, 두 개의 파장과 세 개의 방향을 지정하면 가버 필터 뱅크는 파장과 방향을 각각 조합한 6개의 필터로 구성됩니다.

영상에 가버 필터나 가버 필터 뱅크를 적용하려면 imgaborfilt 함수를 사용하십시오.

생성

설명

예제

g = gabor(Wavelength,Orientation)은 가버 필터를 만들고 필터의 파장과 방향으로 WavelengthOrientation 속성을 설정합니다.

WavelengthOrientation을 벡터로 지정하면 gabor 함수는 WavelengthOrientation의 고유한 조합을 모두 포함하는 gabor 객체로 구성된 배열을 만듭니다.

g = gabor(Wavelength,Orientation,Name,Value)는 이름-값 인수를 사용하여 SpatialFrequencyBandwidthSpatialAspectRatio 속성 중 하나 또는 두 속성을 모두 설정합니다. 여러 개의 이름-값 인수를 지정할 수 있습니다. 각 속성 이름을 따옴표로 묶습니다.

SpatialFrequencyBandwidth 또는 SpatialAspectRatio를 벡터로 지정하면 gabor 함수는 입력 인수 값의 모든 조합을 나타내는 gabor 객체로 구성된 배열을 생성합니다.

예: gabor(wavelength,orientation,"SpatialFrequencyBandwidth",2)는 두 옥타브의 공간 주파수 대역폭을 사용하는 가버 필터를 만듭니다.

속성

모두 확장

정현파 반송파의 파장(단위: 픽셀/주기)으로, 2보다 크거나 같은 값을 가진 숫자형 스칼라 또는 숫자형 벡터로 지정됩니다. Wavelength의 일반적인 값 범위는 2부터 입력 영상 [1]의 빗변 길이까지입니다.

gabor 객체를 만든 후에는 Wavelength 속성을 변경할 수 없습니다.

필터의 방향(단위: 도)으로, [0, 360] 범위의 숫자형 스칼라 또는 숫자형 벡터로 지정됩니다. 방향은 정현파 평면파에 대한 수직 방향으로 정의됩니다.

가버 크기 응답에만 관심이 있다면 Orientation의 범위를 [0, 180]으로 제한하십시오.

gabor 객체를 만든 후에는 Orientation 속성을 변경할 수 없습니다.

옥타브 단위의 공간 주파수 대역폭으로, 양수 또는 양수로 구성된 벡터로 지정됩니다. 입력 영상의 주파수 성분이 기본 주파수 1/lambda와 다르므로 공간 주파수 대역폭에 의해 필터 응답의 차단이 결정됩니다. 공간 주파수 대역폭의 일반적인 값의 범위는 [0.5, 2.5]입니다.

gabor 객체를 만든 후에는 SpatialFrequencyBandwidth 속성을 변경할 수 없습니다.

가우스 포락선에서 긴 반지름과 짧은 반지름의 비율(semiminor/semimajor)로, 양수 또는 양수로 구성된 벡터로 지정됩니다. 이 속성은 가우스 포락선의 타원율을 제어합니다. 공간 종횡비의 일반적인 값의 범위는 [0.23, 0.92]입니다.

gabor 객체를 만든 후에는 SpatialAspectRatio 속성을 변경할 수 없습니다.

읽기 전용 속성입니다.

공간 커널로, 숫자형 행렬로 지정됩니다.

예제

모두 축소

체커보드의 샘플 영상을 만듭니다.

A = checkerboard(20);

가버 필터로 구성된 배열을 만듭니다.

wavelength = 20;
orientation = [0 45 90 135];
g = gabor(wavelength,orientation);

체커보드 영상에 필터를 적용합니다.

outMag = imgaborfilt(A,g);

결과를 표시합니다.

outSize = size(outMag);
outMag = reshape(outMag,[outSize(1:2),1,outSize(3)]);
figure, montage(outMag,'DisplayRange',[]);
title('Montage of gabor magnitude output images.');

Figure contains an axes object. The axes object with title Montage of gabor magnitude output images. contains an object of type image.

가버 필터로 구성된 배열을 만듭니다.

g = gabor([5 10],[0 90]);

배열에 있는 각 가버 필터의 공간 컨벌루션 커널 실수부를 시각화합니다.

figure;
subplot(2,2,1)
for p = 1:length(g)
    subplot(2,2,p);
    imshow(real(g(p).SpatialKernel),[]);
    lambda = g(p).Wavelength;
    theta  = g(p).Orientation;
    title(sprintf('Re[h(x,y)], \\lambda = %d, \\theta = %d',lambda,theta));
end

Figure contains 4 axes objects. Axes object 1 with title Re[h(x,y)], blank lambda blank = blank 5 , blank theta blank = blank 0 contains an object of type image. Axes object 2 with title Re[h(x,y)], blank lambda blank = blank 10 , blank theta blank = blank 0 contains an object of type image. Axes object 3 with title Re[h(x,y)], blank lambda blank = blank 5 , blank theta blank = 90 contains an object of type image. Axes object 4 with title Re[h(x,y)], blank lambda blank = blank 10 , blank theta blank = 90 contains an object of type image.

참고 문헌

[1] Jain, Anil K., and Farshid Farrokhnia. "Unsupervised Texture Segmentation Using Gabor Filters." Pattern Recognition 24, no. 12 (January 1991): 1167–86. https://doi.org/10.1016/0031-3203(91)90143-S.

버전 내역

R2015b에 개발됨