我使用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。如何正确获得欧几里德距离? 只是丢掉矩阵的左侧区域?我现在是否对冲浪的匹配过程误解了?给我一些建议。