关于SURF描述符欧几里德距离的问题

时间:2019-05-07 18:25:11

标签: c++ opencv euclidean-distance surf descriptor

我使用c ++ opencv(3.4.1)SURF(xfeatures2d)获取关键点和描述符。

Ptr<SURF> detector1 = SURF::create(800.0);
detector1->detect(img1, keypoints_1);
detector1->detect(img2, keypoints_2); 
detector1->compute(img1, keypoints_1, descriptors_1);
detector1->compute(img2, keypoints_2, descriptors_2);

然后我只想学习算法就想得到这样的EuclidDistance。

double EuclidDistance(Mat descriptors_1, Mat descriptors_2, int length=64)
{
    double distance_L2 = norm(descriptors_1, descriptors_2, NORM_L2);
    return distance_L2;
}

但是,两个描述符的大小是不一样的。例如描述符_1的大小是64 x 436,描述符_2的大小是64 x328。如何正确获得欧几里德距离? 只是丢掉矩阵的左侧区域?我现在是否对冲浪的匹配过程误解了?给我一些建议。

0 个答案:

没有答案