使用OpenCV获取指定点的SIFT描述符

时间:2014-12-04 02:22:56

标签: opencv computer-vision sift keypoint

我想获得指定点的SIFT功能。这些点是由KeyPoint Detector手工获得的。我的问题是:我只知道点的位置,但不知道大小角度值。我该如何设置这个值?

这是我的代码:

int main()
{
    Mat img_object = imread("img/test.jpg", 0);

    SiftDescriptorExtractor extractor;
    Mat descriptors;
    std::vector<KeyPoint> keypoints;

    // set keypoint position and size: should I set 
    // size parameter to 32 for 32x32 patch?
    KeyPoint kp(50, 60, 32);
    keypoints.push_back(kp);

    extractor.compute( img_object, keypoints, descriptors );

    return 0;
}

对于32x32补丁,我应该将KeyPoint的大小参数设置为32。这种实施是否合理?

1 个答案:

答案 0 :(得分:1)

通常,关键点检测器在一个点周围的局部邻域上工作。这是OpenCV的size类的KeyPoint字段。 angle字段是关键点的主导方向(可以设置为-1,注意)。

OpenCV KeyPoint class

Another reference here.