Main Content

detectSIFTFeatures

SIFT(Scale-Invariant Feature Transform) 특징 검출

R2021b 이후

설명

예제

points = detectSIFTFeatures(I)는 2차원 회색조 또는 이진 입력 영상 I에서 SIFT 특징을 검출하고 SIFTPoints 객체를 반환합니다. detectSIFTFeatures 함수는 SIFT(Scale-Invariant Feature Transform) 알고리즘을 구현하여 영상에서 국소 특징을 찾습니다.

points = detectSIFTFeatures(I,Name=Value)는 위에 열거된 구문의 인수 조합 외에 하나 이상의 이름-값 인수를 사용하여 옵션을 지정합니다. 예를 들어 detectSIFTFeatures(I,ContrastThreshold=0.0133)은 대비가 0.0133보다 작은 SIFT 특징을 검출합니다.

예제

모두 축소

영상을 불러옵니다.

I = imread('cameraman.tif');

영상에서 SIFT 특징을 검출합니다.

points = detectSIFTFeatures(I);

결과를 표시합니다.

imshow(I);
hold on;
plot(points.selectStrongest(10))

Figure contains an axes object. The axes object contains 3 objects of type image, line. One or more of the lines displays its values using only markers

입력 인수

모두 축소

입력 영상으로, M×N 2차원 회색조 또는 이진 영상으로 지정됩니다. 입력 영상은 비희소 형식의 실수 값이어야 합니다.

데이터형: single | double | int16 | uint8 | uint16 | logical

이름-값 인수

예: detectSIFTFeatures(I,ContrastThreshold=0.0133)은 대비가 0.0133보다 작은 SIFT 특징을 검출합니다.

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

가장 강한 특징을 선택하기 위한 대비 임계값으로, [0,1] 범위의 음이 아닌 스칼라로 지정됩니다. 영상의 대비가 낮은 영역에서 약한 특징을 필터링하는 데 임계값이 사용됩니다. 반환된 특징 수를 줄이려면 대비 임계값을 늘리십시오.

경계 임계값으로, 1보다 크거나 같은 음이 아닌 스칼라로 지정됩니다. 영상에서 잡음에 의해 영향을 받는 불안정한 경계와 같은 특징을 필터링하는 데 임계값이 사용됩니다. 필터링으로 제거되는 특징 수를 줄이려면 경계 임계값을 늘리십시오.

각 옥타브의 계층 수로, 1보다 크거나 같은 정수 스칼라로 지정됩니다. 옥타브 수는 영상 해상도에서 자동으로 계산됩니다. 영상에서 더 큰 특징을 검출하려면 각 옥타브의 계층 수를 늘리십시오.

가우스의 시그마로, 스칼라로 지정됩니다. 가우스의 시그마는 초기 옥타브에서 입력 영상에 적용됩니다. 일반적으로 시그마 값의 범위는 [1,2]입니다. 영상이 흐리면 시그마 값을 낮추십시오.

출력 인수

모두 축소

SIFT 특징으로, SIFTPoints 객체로 반환됩니다. 이 객체는 2차원 회색조 또는 이진 영상에서 검출된 SIFT 특징에 대한 정보를 포함합니다.

참고 문헌

[1] Lowe, David G. "Distinctive Image Features from Scale-Invariant Keypoints." International Journal of Computer Vision 60, no. 2 (November 2004): 91--110.

확장 기능

버전 내역

R2021b에 개발됨