function varargout = kdtreequery(varargin) % VL_KDTREEQUERY Query KD-tree % [INDEX, DIST] = VL_KDTREEQUERY(KDTREE, X, Y) computes the nearest % column of X to each column of Y (in Euclidean distance). KDTREE is % a forest of kd-trees build by VL_KDTREEBUILD(). X is a % NUMDIMENSIONS x NUMDATA data matrix of class SINGLE or DOUBLE with % the data indexed by the kd-trees (it must be the same data matrix % passed to VK_KDTREEBUILD() to build the trees). Y is the % NUMDIMENSIONS x NUMQUERIES matrix of query points and must have % the same class of X. INDEX is a 1 x NUMQUERIES matrix of class % UINT32 with the index of the nearest column of X for each column % of Y. DIST is a 1 x NUMQUERIES vector of class SINGLE or DOUBLE % (depending on the class of X and Y) with the corresponding squared % Euclidean distances. % % [INDEX, DIST] = VL_KDTREEQUERY(..., 'NUMNEIGHBORS', NN) can be % used to return the N nearest neighbors rather than just the % nearest one. In this case INDEX and DIST are NN x NUMQUERIES % matrices. Neighbors are returned by increasing distance. % % VL_KDTREEQUERY(..., 'MAXNUMCOMPARISONS', NCOMP) performs at most % NCOMP comparisons for each query point. In this case the result is % only approximate (i.e. approximated nearest-neighbors, or ANNs) % but the speed can be greatly improved. % % Options: % % NumNeighbors:: % Sets the number of neighbors to compute for each query point (by % default 1). % % MaxNumComparisons:: % Sets the maximum number of comparisons per query point. The % special value 0 means unbounded. The default is 0. % % See also: VL_KDTREEBUILD(), VL_HELP(). [varargout{1:nargout}] = vl_kdtreequery(varargin{:});