我目前正在研究使用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;
}
};
感谢您的善意考虑......
答案 0 :(得分:1)
要匹配描述符,您需要DescriptorMatcher
(例如BruteForceMatcher
in this example)。有关这些文档的更多文档可以在on OpenCV site here