Scale Invariant Feature Transform(SIFT)
1 개요
척도 불변 특성 변환 알고리즘을 사용해 이미지의 로컬 특징을 추출하는 알고리즘입니다.
2 알고리즘 상세 설명
Source Image | Result Image |
---|---|
![]() |
![]() |
Fig. SIFT 동작 결과
3 파라미터 설정 및 사용 방법
-
SetSigma(float f32Sigma)
- Sigma 값을 설정합니다.
- Default Value : 1.6
- Recommended Value : 1.4, 1.5, 1.6
-
SetEdgeThreshold(float f32EdgeThreshold)
- Edge Threshold 값을 설정합니다.
- Default Value : 10
- Recommended Value : 5, 10, 15
-
SetContrastThreshold(float f32ContrastThreshold)
- Contrast Threshold 값을 설정합니다.
- Default Value : 0.04
- Recommended Value : 0.03, 0.04, 0.0
-
SetOctaveLayers(int32_t i32OctaveLayers)
- Octave Layer 값을 설정합니다.
- Default Value : 5
- Recommended Value : 5, 6, 7
-
SetNFeature(int32_t i32NFeature)
- 결과 Feature Point의 최대 개수를 설정합니다.
- 0 설정 시 모든 결과를 반환합니다.
- Default Value : 500
- Recommended Value : 0, 500, 2000
4 결과 취득 방법
GetResultPoints(CFLPointArray flpaResultPoints)
- 결과 Keypoint의 좌표를 얻어옵니다.
GetResultDescriptorBuffer(CFLArray<float> flaResult)
- 결과 Keypoint의 Descriptor를 얻어옵니다.
5 예제 코드
CScaleInvariantFeatureTransform SIFT;
CFLImage fliSourceImage;
CFLPointArray flfaResultPoints;
SIFT.SetSourceImage(fliSourceImage);
SIFT.Execute();
SIFT.GetResultPoints(flfaResultPoints);