Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Descriptors like SIFT, SURF, ORB, BRISK (MSER?), which make use of their keypoint-based scale-detection (i.e. the scale is determined during the keypoint-extraction) are actually pretty scale invariant, see http://computer-vision-talks.com/2012/08/a-battle-of-three-descriptors-surf-freak-and-brisk/ for a small evaluation. Just for clarification: this also means, the descriptor itself is typically not scale-invariant but in conjunction with its detector it gets scale-invariant.

To answer your question: typically you can adjust the scale-invariance for the detector by adjusting the number of octaves/number of pyramid layers/scale factor. If you don't want to use a scale-invariant detector then you can use a Gaussian pyramid via PyramidAdaptedFeatureDetector(), see http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#pyramidadaptedfeaturedetector.

Descriptors like SIFT, SURF, ORB, BRISK (MSER?), which make use of their keypoint-based scale-detection (i.e. the scale is determined during the keypoint-extraction) keypoint-detection) are actually pretty scale invariant, see http://computer-vision-talks.com/2012/08/a-battle-of-three-descriptors-surf-freak-and-brisk/ for a small evaluation. Just for clarification: this also means, the descriptor itself is typically not scale-invariant but in conjunction with its detector it gets scale-invariant.

To answer your question: typically you can adjust the scale-invariance for the detector by adjusting the number of octaves/number of pyramid layers/scale factor. If you don't want to use a scale-invariant detector then you can use a Gaussian pyramid via PyramidAdaptedFeatureDetector(), see http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#pyramidadaptedfeaturedetector.