Hi all, I'm trying to use Surf with ocl for speed up the feature finding,and then to use them for calculate homography. I'm using this code for finding the feature:
SURF_OCL surf;
BFMATCHER_OCL matcher;
vector<KeyPoint> keypoints1, keypoints2;
vector<DMatch> matches;
oclMat descriptors1GPU, descriptors2GPU;
surf(img1, oclMat(), keypoints1, descriptors1GPU);
surf(img2, oclMat(), keypoints2, descriptors2GPU);
matcher.match(descriptors1GPU, descriptors2GPU, matches);
The matches array il filled with a lot of elements (like 3000 or 4000) but when I do this code
double max_dist = 0; double min_dist = 100;
//-- Quick calculation of max and min distances between keypoints
for( int i = 0; i < descriptors_object.rows; i++ )
{ double dist = matches[i].distance;
if( dist < min_dist ) min_dist = dist;
if( dist > max_dist ) max_dist = dist;
}
max and min dist remains the same so when I'm taking good matches with this
vector< DMatch > good_matches;
for( int i = 0; i < descriptors_object.rows; i++ )
{ if( matches[i].distance < 3*min_dist )
{ good_matches.push_back( matches[i]); }
}
I've an empty array.
What can I do?