[ASIFT 3] Computing ASIFT keypoints and matching

来源:互联网 发布:mac如何装win10虚拟机 编辑:程序博客网 时间:2024/06/07 14:20

In this algorithm, using SIFT to obtain keypoints and match them.

set num_of_tilts  7, from 1, 1.414, 2......to......

if number of tilt equals 1, I think ASIFT is SIFT.

//// Compute ASIFT keypoints     // number N of tilts to simulate t = 1, \sqrt{2}, (\sqrt{2})^2, ..., {\sqrt{2}}^(N-1)     int num_of_tilts1 = 7;     int num_of_tilts2 = 7;     //  int num_of_tilts1 = 1;     //  int num_of_tilts2 = 1;     int verb = 0;     // Define the SIFT parameters     siftPar siftparameters;      default_sift_parameters(siftparameters);      vector< vector< keypointslist > > keys1;             vector< vector< keypointslist > > keys2;              int num_keys1=0, num_keys2=0;               cout << "Computing keypoints on the two images..." << endl;     time_t tstart, tend;         tstart = time(0);      num_keys1 = compute_asift_keypoints(ipixels1_zoom, wS1, hS1, num_of_tilts1, verb, keys1, siftparameters);     num_keys2 = compute_asift_keypoints(ipixels2_zoom, wS2, hS2, num_of_tilts2, verb, keys2, siftparameters);          tend = time(0);     cout << "Keypoints computation accomplished in " << difftime(tend, tstart) << " seconds." << endl;     
computing the keyspoint by siftparameter, storing in the vector 'key1' and 'key2'.


//// Match ASIFT keypoints     int num_matchings;     matchingslist matchings;         cout << "Matching the keypoints..." << endl;     tstart = time(0);     num_matchings = compute_asift_matches(num_of_tilts1, num_of_tilts2, wS1, hS1, wS2,                                            hS2, verb, keys1, keys2, matchings, siftparameters);     tend = time(0);     cout << "Keypoints matching accomplished in " << difftime(tend, tstart) << " seconds." << endl;

matching keypoints by using keys1 and keys2, storing in the matchingList 'matching'.



ok, now we finish the main steps of ASIFT. Thanks for theJean-Michel Morel and Guoshen Yu.



1 0
原创粉丝点击