1

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

vector<Descriptor> m_keyDescs;

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

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

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

我已将描述符类定义为,

 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;
}
};

感谢您的善意考虑...

4

1 回答 1

1

要匹配描述符,您需要一个DescriptorMatcher(如BruteForceMatcher 本例所示)。更多关于这些的文档可以在 OpenCV 站点上找到

于 2012-08-03T16:36:20.923 回答