Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Keypoints detected by SIFT in openCV, its size is radius or diameter of relevant area?

Tags:

c++

opencv

sift

OpenCV SIFT descriptor keypoint radius here deltheil answered as radius But when I go to the documentation of OpenCV, it gives:

float cv::KeyPoint::size diameter of the meaningful keypoint neighborhood

http://docs.opencv.org/master/d2/d29/classcv_1_1KeyPoint.html#a308006c9f963547a8cff61548ddd2ef2 so somehow confused... Thanks!

like image 674
Stomachache007 Avatar asked Oct 17 '25 14:10

Stomachache007


1 Answers

That's two different things:

  • The size attribute of cv::KeyPoint is the size of the blob determined by SIFT feature detector. The size is also known as scale and it can be derived from the smoothing level of the image. Not to forget: searching for keypoints at multiple scales is obtained by constructing the Gaussian scale-space. Each keypoint is described by a geometric frame of four parameters: the keypoint center coordinates x and y, its scale (originally it is the radius of the region, but OpenCV defines it as a diameter), and its orientation (an angle).

  • On the other hand, the radius that is in question here is a property of SIFT descriptor and it corresponds to a circle that wraps a squared patch (Gaussian window) of dimension D. By this window the algorithm is weighting or reducing the gradient contributions farther away from the descriptor center.

As it is also mentioned in the other question I greatly recommend you to refer to this vlfeat SIFT documentation.

like image 121
Kornel Avatar answered Oct 20 '25 04:10

Kornel



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!