我想获得指定点的SIFT功能。这些点是由KeyPoint Detector手工获得的。我的问题是:我只知道点的位置,但不知道大小和角度值。我该如何设置这个值?
这是我的代码:
int main()
{
Mat img_object = imread("img/test.jpg", 0);
SiftDescriptorExtractor extractor;
Mat descriptors;
std::vector<KeyPoint> keypoints;
// set keypoint position and size: should I set
// size parameter to 32 for 32x32 patch?
KeyPoint kp(50, 60, 32);
keypoints.push_back(kp);
extractor.compute( img_object, keypoints, descriptors );
return 0;
}
对于32x32补丁,我应该将KeyPoint的大小参数设置为32。这种实施是否合理?
答案 0 :(得分:1)
通常,关键点检测器在一个点周围的局部邻域上工作。这是OpenCV的size
类的KeyPoint
字段。 angle
字段是关键点的主导方向(可以设置为-1,注意)。