OpenCV Code将存储在列表中的描述符与新的图像描述符进行比较

时间:2012-08-03 15:36:05

标签: c++ opencv sift

我目前正在研究使用SIFT算法进行最后一年大学项目的自动交通标志检测。我正在使用OpenCV,目前我已经到达,直到找到图像的描述符。我使用以下代码将此SIFT功能存储在列表中

vector<Descriptor> m_keyDescs;

m_keyDescs.push_back(Descriptor(descxi, descyi, fv));

现在我想使用此功能与新图像进行比较,我想识别新图像是否与上一张图像相同。但我不知道如何使用存储在列表中的这些功能来识别新图像。如何检索此存储的列表并与新创建的图像描述符进行比较?

如果您能帮助我,我很高兴,因为我是OpenCV的新手。 :)

我已将Descriptor类定义为

 class Descriptor
 {
 public:
 float xi, yi;      
 vector<double> fv; // Feature vector

Descriptor()
{
}

Descriptor(float x, float y, vector<double> const& f)
{
    xi = x;
    yi = y;
    fv = f;
}
};

感谢您的善意考虑......

1 个答案:

答案 0 :(得分:1)

要匹配描述符,您需要DescriptorMatcher(例如BruteForceMatcher in this example)。有关这些文档的更多文档可以在on OpenCV site here

找到