1

我想获得指定点的 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。这种实现是否合理?

4

1 回答 1

1

通常,关键点检测器在一个点周围的本地邻域上工作。这是sizeOpenCVKeyPoint类的领域。该angle字段是关键点的主要方向(这可以设置为 -1,注意)。

OpenCV 关键点类

这里的另一个参考。

于 2014-12-04T12:56:13.687 回答