- Main Page
- Tutorials
- Functions
- Release Notes
- Examples

Functions
nearestNeighbour
Complete List of ArrayFire Functions ArrayFire Functions by Category » Computer Vision » | Feature matchers

Nearest Neighbour. More...

## Functions
AFAPI void | nearestNeighbour (array &idx, array &dist, const array &query, const array &train, const dim_t dist_dim=0, const unsigned n_dist=1, const af_match_type dist_type=AF_SSD)
| C++ Interface wrapper for Nearest Neighbour. More...
AFAPI af_err | af_nearest_neighbour (af_array *idx, af_array *dist, const af_array query, const af_array train, const dim_t dist_dim, const unsigned n_dist, const af_match_type dist_type)
| C Interface wrapper for Nearest Neighbour. More...

## Detailed Description

Nearest Neighbour.

Calculates nearest distances between two 2-dimensional arrays containing features based on the type of distance computation chosen. Currently, AF_SAD (sum of absolute differences), AF_SSD (sum of squared differences) and AF_SHD (hamming distance) are supported. One of the arrays containing the training data and the other the query data. One of the dimensions of the both arrays must be equal among them, identifying the length of each feature. The other dimension indicates the total number of features in each of the training and query arrays. Two 1-dimensional arrays are created as results, one containg the smallest N distances of the query array and another containing the indices of these distances in the training array. The resulting 1-dimensional arrays have length equal to the number of features contained in the query array.

## Function Documentation

AFAPI af_err af_nearest_neighbour | ( | af_array * | idx,
|  | af_array * | dist,
|  | const af_array | query,
|  | const af_array | train,
|  | const dim_t | dist_dim,
|  | const unsigned | n_dist,
|  | const af_match_type | dist_type
| ) |  |

C Interface wrapper for Nearest Neighbour.

Parameters

  [out] | idx | is an array of MxN size, where M is equal to the number of query features and N is equal to n_dist. The value at position IxJ indicates the index of the Jth smallest distance to the Ith query value in the train data array. the index of the Ith smallest distance of the Mth query.
  [out] | dist | is an array of MxN size, where M is equal to the number of query features and N is equal to n_dist. The value at position IxJ indicates the distance of the Jth smallest distance to the Ith query value in the train data array based on the dist_type chosen.
  [in] | query | is the array containing the data to be queried
  [in] | train | is the array containing the data used as training data
  [in] | dist_dim | indicates the dimension to analyze for distance (the dimension indicated here must be of equal length for both query and train arrays)
  [in] | n_dist | is the number of smallest distances to return (currently, only 1 is supported)
  [in] | dist_type | is the distance computation type. Currently AF_SAD (sum of absolute differences), AF_SSD (sum of squared differences), and AF_SHD (hamming distances) are supported.

AFAPI void af::nearestNeighbour | ( | array & | idx,
|  | array & | dist,
|  | const array & | query,
|  | const array & | train,
|  | const dim_t | dist_dim = `0`,
|  | const unsigned | n_dist = `1`,
|  | const af_match_type | dist_type = `AF_SSD`
| ) |  |

C++ Interface wrapper for Nearest Neighbour.

Parameters

  [out] | idx | is an array of MxN size, where M is equal to the number of query features and N is equal to n_dist. The value at position IxJ indicates the index of the Jth smallest distance to the Ith query value in the train data array. the index of the Ith smallest distance of the Mth query.
  [out] | dist | is an array of MxN size, where M is equal to the number of query features and N is equal to n_dist. The value at position IxJ indicates the distance of the Jth smallest distance to the Ith query value in the train data array based on the dist_type chosen.
  [in] | query | is the array containing the data to be queried
  [in] | train | is the array containing the data used as training data
  [in] | dist_dim | indicates the dimension to analyze for distance (the dimension indicated here must be of equal length for both query and train arrays)
  [in] | n_dist | is the number of smallest distances to return (currently, only 1 is supported)
  [in] | dist_type | is the distance computation type. Currently AF_SAD (sum of absolute differences), AF_SSD (sum of squared differences), and AF_SHD (hamming distances) are supported.