我目前正在为最后一年的大学项目使用 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;
}
};
感谢您的善意考虑...