get_local_keypoint_match - Finds the closest match to the given keypoint in a vector of candidate keypoints.


#include "kpt/keypoint.h"

Example compile flags (system dependent):
   -L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
  -lKJB                               -lfftw3  -lgsl -lgslcblas -ljpeg  -lSVM -lstdc++                    -lpthread -lSLATEC -lg2c    -lacml -lacml_mv -lblas -lg2c      -lncursesw 

int get_local_keypoint_match
	const Keypoint *target_kpt,
	const Keypoint_vector *candidate_kvp,
	const double dist_ratio,
	const double dist_thresh


const double dist_ratio
const Matrix *H_mp,


Closeness is measured by both, the location and descriptor similarity. This routine finds the two nearest neighbors of the given keypoint. The similarity is measured by the Euclidean distance of the keypoint vectors. Based on D. Lowe's "Distinctive image features from scale-invariant keypoints" paper. However, the cloest match is selected based on the ratio of the distances to the nearest and the second nearest neighbor, AND its location proximity.


On error, this routine returns ERROR. If the keypoint pointers are NULL, the routine returns NOT_SET. If a match was not found then the routine returns NOT_FOUND, otherwise, On success it returns the index of the keypoint matched to the target.


const Keypoint *target_kpt - the keypoint for which to find a match const Keypoint_vector *candidate_kvp - a vector of possible matches const Matrix *H_mp - a homography that transforms target into candidate const int dist_ratio - a ratio between 2 nearest keypoint matches const double dist_thresh - a threshold on how far a match can be


get_keypoint_match, find_putative_matches


This software is not adequatedly tested. It is recomended that results are checked independantly where appropriate.


Kobus Barnard


Kobus Barnard


create_keypoint , get_target_keypoint , copy_keypoint , set_keypoint_from_vector , free_keypoint , read_vl_keypoints_into_matrix , read_vl_keypoint_vector_from_file , extract_selected_keypoints_positions , extract_keypoints_positions , create_keypoint_vector , get_keypoint_vector_from_matrix , copy_keypoint_vector , copy_keypoint_vector_selected_rows , write_vl_keypoint_vector , get_vector_from_keypoint , free_keypoint_vector , get_target_keypoint_vector , create_keypoint_vector_vector , get_target_keypoint_vector_vector , free_keypoint_vector_vector , free_keypoint_vector_descriptors , keypoint_euclidean_distance , get_keypoint_match , draw_oriented_keypoint , draw_oriented_keypoint_1 , draw_ubc_keypoints_from_file , fp_draw_vl_keypoints , draw_vl_keypoints_from_file , draw_keypoints_from_keypoint_vector , draw_vl_keypoint_vector_with_mask , draw_vl_keypoint_vector_with_mask_value , draw_keypoint_correspondences , draw_keypoint_matches , draw_keypoint_matches_1 , draw_ransac_matches