### Navigation

- index
- next |
- previous |
- OpenCV 3.0.0-dev documentation »
- OpenCV API Reference »
- flann. Clustering and Search in Multi-Dimensional Spaces »

# Clustering

## flann::hierarchicalClustering<Distance>

Clusters features using hierarchical k-means algorithm.

C++:`` template<typename Distance> int `flann::``hierarchicalClustering`(const Mat& features, Mat& centers, const cvflann::KMeansIndexParams& params, Distance d=Distance())

  Parameters: | features – The points to be clustered. The matrix must have elements of type `Distance::ElementType`. centers – The centers of the clusters obtained. The matrix must have type `Distance::ResultType`. The number of rows in this matrix represents the number of clusters desired, however, because of the way the cut in the hierarchical tree is chosen, the number of clusters computed will be the highest number of the form `(branching-1)*k+1` that’s lower than the number of clusters desired, where `branching` is the tree’s branching factor (see description of the KMeansIndexParams). params – Parameters used in the construction of the hierarchical k-means tree. d – Distance to be used for clustering.

The method clusters the given feature vectors by constructing a hierarchical k-means tree and choosing a cut in the tree that minimizes the cluster’s variance. It returns the number of clusters found.

## Help and Feedback

You did not find what you were looking for?

- Ask a question on the Q&A forum.
- If you think something is missing or wrong in the documentation, please file a bug report.

### Navigation

- index
- next |
- previous |
- OpenCV 3.0.0-dev documentation »
- OpenCV API Reference »
- flann. Clustering and Search in Multi-Dimensional Spaces »