2012-08-03 100 views
0

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

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

谢谢您的关照......

回答

1

要匹配描述符,你需要一个DescriptorMatcher(如BruteForceMatcherin this example)。关于这些的更多文档可以发现on OpenCV site here

+0

我希望这可以帮助。我对OpenCV一无所知,但我是这个网站的新手,我很快就需要点数来对问题进行投票;-) – user7610 2012-08-03 16:37:16