0

我有一张图像,我想通过使用 SIFT 检测器定位关键点并将它们分组,然后我想通过使用 SIFT 为每个关键点生成局部特征,请你帮我怎么做?请给我任何建议我非常感谢您的帮助

4

2 回答 2

0

If you are using opencv here are the commands to do it, else if you are using the matlab see the link MATCHING_using surf


USING OPENCV::

// you can change the parameters for your requirement

    double hessianThreshold=200; 
    int octaves=3;
    int octaveLayers=4;
    bool upright=false;
    vector<KeyPoint>keypoints;

//The detector detects the keypoints in an image here image is RGBIMAGE of Mat type

SurfFeatureDetector detector( hessianThreshold, octaves, octaveLayers, upright );
detector.detect(RGB_IMAGE, keypoints);

//The extractor computesthe local features around the keypoints

SurfDescriptorExtractor extractor;
Mat descriptors;
extractor.compute( last_ref, keypoints, descriptors);

// all the key points local features are stored in rows one after another in descriptors matrix...

Hope it is useful:)

于 2012-07-26T06:27:07.660 回答
0

我不确定我理解你的意思,但是如果你从图像中提取 SIFT 特征,你会自动获得用于相互比较特征的特征描述符。当然你也可以用它得到特征位置、大小、方向和粗麻布值。

虽然您可以按图像中的位置对这些特征进行分组,但目前我知道无法比较这些组,因为它们可能是局部相关的,但可能具有截然不同的特征描述符。

我也建议冲浪。它速度更快且不受专利保护。

如果您需要有关如何检索和比较描述符的具体说明,请查看OpenCV 中的示例。

于 2012-07-24T18:27:56.190 回答