이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

imgaborfilt

2차원 영상에 가보르 필터 또는 필터 세트 적용하기

설명

예제

[mag, phase] = imgaborfilt(A,wavelength,orientation)은 입력 회색조 영상 A에 대해 가보르 필터의 크기 및 위상 응답을 계산합니다. wavelength는 정현파 반송파의 파장(단위: 픽셀/주기)을 설명합니다. orientation은 필터의 방향(단위: 도)입니다. 출력값 magphase는 가보르 필터의 크기 및 위상 응답입니다.

[mag, phase] = imgaborfilt(A,wavelength,orientation,Name,Value,...)는 필터링의 다양한 특성을 제어하기 위해 이름-값 쌍을 사용하여 단일 가보르 필터를 적용합니다.

예제

[mag, phase] = imgaborfilt(A,gaborbank)는 입력 영상 A에 가보르 필터 배열 gaborbank를 적용합니다. gaborbank필터 뱅크라 불리는 1xp 가보르 객체 배열입니다. magphase는 영상 스택으로, 이 스택의 각 평면은 필터 뱅크의 출력 하나에 해당합니다. 크기가 A인 입력값에 대해, 출력값 magphase는 각 gaborbank 필터의 크기 및 위상 응답을 포함하며 크기는 mxnxp입니다. 크기 및 위상 응답 mag(:,:,ind),phase(:,:,ind)의 각 평면은 같은 인덱스 gaborBank(ind)의 가보르 필터를 적용한 결과입니다.

예제

모두 축소

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

I = imread('board.tif');

영상을 회색조로 변환합니다.

I = rgb2gray(I);

영상에 가보르 필터를 적용합니다.

wavelength = 4;
orientation = 90;
[mag,phase] = imgaborfilt(I,wavelength,orientation);

원본 영상과 가보르 필터로 계산한 크기 및 위상 플롯을 함께 표시합니다.

figure
subplot(1,3,1);
imshow(I);
title('Original Image');
subplot(1,3,2);
imshow(mag,[])
title('Gabor magnitude');
subplot(1,3,3);
imshow(phase,[]);
title('Gabor phase');

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

I = imread('cameraman.tif');

필터 뱅크라고 하는 가보르 필터의 배열을 만듭니다. 이 필터 뱅크에는 2개의 방향 및 2개의 파장이 있습니다.

gaborArray = gabor([4 8],[0 90]);

입력 영상에 필터를 적용합니다.

gaborMag = imgaborfilt(I,gaborArray);

결과를 표시합니다. 이 그림은 각 필터에 대한 크기 응답을 보여줍니다.

figure
subplot(2,2,1);
for p = 1:4
    subplot(2,2,p)
    imshow(gaborMag(:,:,p),[]);
    theta = gaborArray(p).Orientation;
    lambda = gaborArray(p).Wavelength;
    title(sprintf('Orientation=%d, Wavelength=%d',theta,lambda));
end

입력 인수

모두 축소

입력 회색조 영상으로, 비희소 형식의 실수 2차원 행렬로 지정됩니다.

영상에 Inf 또는 NaN이 있을 경우 imgaborfilt의 동작은 정의되지 않습니다. 가보르 필터링이 주파수 영역에서 수행되기 때문입니다.

single형 이외의 모든 입력 데이터형에 대해서는 imgaborfiltdouble형으로 계산을 수행합니다. single형 입력 영상은 single형에서 필터링됩니다. imgaborfilt 호출에 앞서 입력 영상을 single형으로 형변환하면 성능이 최적화될 수도 있습니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

정현파 반송파의 파장(단위: 픽셀/주기)으로, [2,Inf) 범위의 숫자형 스칼라로 지정됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

가보르 필터의 배열로, gabor 객체로 지정됩니다. 가보르 필터의 배열을 만들려면 gabor 함수를 사용해야 합니다.

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: [mag,phase] = imgaborfilt(I,4,90,'SpatialFrequencyBandwidth',2);

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

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

가우스 포락선에서 긴 반지름과 짧은 반지름의 비율(semi-minor/semi-major)로, 숫자형 스칼라로 지정됩니다. 이 파라미터는 가우스 포락선의 타원율을 제어합니다. 공간 종횡비의 일반적인 값의 범위는 [0.23 0.92]입니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

출력 인수

모두 축소

가보르 필터에 대한 크기 응답으로, double형 클래스의 숫자형 배열로 반환됩니다.

가보르 필터에 대한 위상 응답으로, double형 클래스의 숫자형 배열로 반환됩니다.

확장 기능

R2015b에 개발됨