#include <opencv2/opencv.hpp>
#include <vector>
#include <queue>
|
| void | __feats2KeyPoints (const vector< Feature > &feats, vector< KeyPoint > &keypoints) |
| |
| void | __featsVec2Mat (const vector< Feature > &feats, Mat &mat) |
| |
| void | __buildDogPyramid (const vector< Mat > &gaussian_pyramid, vector< Mat > &dog_pyramid, int octaves, int intervals) |
| |
| bool | __isExtremum (const vector< Mat > &dog_pyramid, int idx, int r, int c) |
| |
| bool | __interpExtremum (const vector< Mat > &dog_pyramid, Feature &feat, int idx, int r, int c, int intervals, double contrast_thres) |
| |
| bool | __isTooEdgeLike (const Mat &dog, int r, int c, int curvature_thres) |
| |
◆ MAX_KP
◆ REMOVE_DUPLICATED_ORI
| #define REMOVE_DUPLICATED_ORI true |
◆ SIFT_DESCR_MAG_THR
| #define SIFT_DESCR_MAG_THR 0.2 |
◆ SIFT_DESCR_SCL_FCTR
| #define SIFT_DESCR_SCL_FCTR 3.0 |
◆ SIFT_IMG_BORDER
| #define SIFT_IMG_BORDER 5 |
◆ SIFT_INIT_SIGMA
| #define SIFT_INIT_SIGMA 0.5 |
◆ SIFT_INT_DESCR_FCTR
| #define SIFT_INT_DESCR_FCTR 512.0 |
◆ SIFT_KEYPOINT_DIAMETER
| #define SIFT_KEYPOINT_DIAMETER 2.0 |
◆ SIFT_MAX_INTERP_STEPS
| #define SIFT_MAX_INTERP_STEPS 5 |
◆ SIFT_ORI_HIST_BINS
| #define SIFT_ORI_HIST_BINS 36 |
◆ SIFT_ORI_PEAK_RATIO
| #define SIFT_ORI_PEAK_RATIO 0.8 |
◆ SIFT_ORI_RADIUS
◆ SIFT_ORI_SIG_FCTR
| #define SIFT_ORI_SIG_FCTR 1.5 |
◆ SIFT_ORI_SMOOTH_PASSES
| #define SIFT_ORI_SMOOTH_PASSES 2 |
◆ VERBOSE
◆ __buildDogPyramid()
| void __buildDogPyramid |
( |
const vector< Mat > & |
gaussian_pyramid, |
|
|
vector< Mat > & |
dog_pyramid, |
|
|
int |
octaves, |
|
|
int |
intervals |
|
) |
| |
[Build Difference of Gaussian Pyramid]
- Parameters
-
| gaussian_pyramid | [gaussian pyramid] |
| dog_pyramid | [returned dog pyramid, size : octaves x (intervals + 2)] |
| octaves | [number of octaves] |
| intervals | [number of intervals per octave] |
◆ __feats2KeyPoints()
| void __feats2KeyPoints |
( |
const vector< Feature > & |
feats, |
|
|
vector< KeyPoint > & |
keypoints |
|
) |
| |
[convert features to keypoints]
- Parameters
-
| feats | [features in vector] |
| keypoints | [returned keypoint vector] |
◆ __featsVec2Mat()
| void __featsVec2Mat |
( |
const vector< Feature > & |
feats, |
|
|
Mat & |
mat |
|
) |
| |
[convert features from vector to Mat]
- Parameters
-
| feats | [features in vector] |
| mat | [returned Mat] |
◆ __interpExtremum()
| bool __interpExtremum |
( |
const vector< Mat > & |
dog_pyramid, |
|
|
Feature & |
feat, |
|
|
int |
idx, |
|
|
int |
r, |
|
|
int |
c, |
|
|
int |
intervals, |
|
|
double |
contrast_thres |
|
) |
| |
[Interpolates a scale-space extremum's location]
- Parameters
-
| dog_pyramid | [Dog pyramid] |
| feat | [returned feature] |
| idx | [index of intervals] |
| r | [pixel's image row] |
| c | [pixel's image col] |
| intervals | [number of intervals per octave] |
| contrast_thres | [low threshold on feature contrast] |
- Returns
- [is a feature?]
◆ __isExtremum()
| bool __isExtremum |
( |
const vector< Mat > & |
dog_pyramid, |
|
|
int |
idx, |
|
|
int |
r, |
|
|
int |
c |
|
) |
| |
[Determines whether a pixel is a scale-space extremum]
- Parameters
-
| dog_pyramid | [Dog pyramid] |
| idx | [index of intervals] |
| r | [pixel's image row] |
| c | [pixel's image col] |
- Returns
- [extremum?]
◆ __isTooEdgeLike()
| bool __isTooEdgeLike |
( |
const Mat & |
dog, |
|
|
int |
r, |
|
|
int |
c, |
|
|
int |
curvature_thres |
|
) |
| |
[Is a feature too edge like?]
- Parameters
-
| dog | [Dog layer] |
| r | [row] |
| c | [col] |
| curvature_thres | [high threshold on ratio of principal curvatures] |
- Returns
- [edge?]