How can i match KAZE descriptors?
I tried the demo codes with the AKAZE, and it worked well. But when i want to use KAZE, it gives back this error:
Assertion failed ((type == CV_8U && dtype == CV_32S) || dtype == CV_32F) in cv::batchDistance
I used this:
Ptr<KAZE> kaze = KAZE::create();
kaze->detectAndCompute(img1, noArray(), kpts1, desc1);
kaze->detectAndCompute(img2, noArray(), kpts2, desc2);
BFMatcher matcher(NORM_HAMMING);
And the code gives back error, if i use
matcher.match(desc1, desc2, matches);
or
matcher.knnMatch(desc1, desc2, nn_matches, 2);
Where matches is vector<dmatch> and nn_matches is vector< vector<DMatch> >
Can u tell me, how can i match KAZE descriptors?
indeed,
cerr << kaze->descriptorType() << endl;
returns 5 (float). confusing.so you can't use NORM_HAMMING, but have to use NORM_L2 or similar.