During exploration of algorithm implementation, I found many projects that well implements the original idea by Herbert Bay et al.
Whatever modern feature descriptor you are using, most scale-invariant feature descriptors output sequence of floating numbers that encodes given image patch.
Along with the vector of descriptors, scale, detected octave are also important variables for the feature.
In this article, I'll explain what is the *scale*.
The scale is a scalar variable describes the width of Gaussian kernel which roughly gives an idea of distance of feature.
In case the OpenCV, the scale can be obtained as follows.
The KeyPoint structure, let say kpt, has a member variable 'size' which the number represents the size of the patch. To obtain the filter size, use std::sqrt(kpt.size).
In the original paper, the smallest filter size is 9x9. So the scale will be
scale = 1.2 * ( filter_size / 9 )
[Links]
- http://experienceopencv.blogspot.kr/2011/01/surf-detector.html
- http://www.computerrobotvision.org/2010/tutorial_day/tam_surf_rev3.pdf
No comments:
Post a Comment