/*!
\defgroup PkgClassification Classification Reference

\defgroup PkgClassificationConcepts Concepts
\ingroup PkgClassification

\defgroup PkgClassificationMain Main Functions
\ingroup PkgClassification

Functions that perform classification based on a set of labels and a classifier, with or without regularization.

\defgroup PkgClassificationClassifiers Classifiers
\ingroup PkgClassification

Classifiers are functors that, given a label set and an input item, associate this input item with an energy for each label. This energy measures the likelihood of the item to belong to this label.

\defgroup PkgClassificationDataStructures Common Data Structures
\ingroup PkgClassification

Useful data structures that are used to compute features (computation of eigenvalues, for example).

\defgroup PkgClassificationLabel Label
\ingroup PkgClassification

A label represents how an item should be classified, for example: _vegetation_, _building_, _road_, etc.

\defgroup PkgClassificationFeature Feature
\ingroup PkgClassification

Features are defined as scalar fields that associates each input item with a specific value.

\defgroup PkgClassificationFeatures Predefined Features
\ingroup PkgClassification

\cgal provides some predefined features that are relevant for classification of point sets.

\defgroup PkgClassificationPointSet Point Set Classification
\ingroup PkgClassification

Data structures specialized to classify point sets.

\defgroup PkgClassificationMesh Mesh Classification
\ingroup PkgClassification

Data structures specialized to classify surface meshes.

\defgroup PkgClassificationCluster Cluster Classification
\ingroup PkgClassification

Data structures specialized to classify clusters.

\addtogroup PkgClassification

\cgalPkgDescriptionBegin{Classification, PkgClassificationSummary}
\cgalPkgPicture{data_classif.png}

\cgalPkgSummaryBegin
\cgalPkgAuthors{Simon Giraudot, Florent Lafarge}
\cgalPkgDesc{This component implements an algorithm that classifies a data set into a user-defined set of labels (such as ground, vegetation, buildings, etc.). A flexible API is provided so that users can classify any type of data, compute their own local features on the input data set, and define their own labels.}
\cgalPkgManuals{Chapter_Classification, PkgClassification}
\cgalPkgSummaryEnd

\cgalPkgShortInfoBegin
\cgalPkgSince{4.12}
\cgalPkgDependsOn{\ref PkgSolverSummary, \ref PkgSpatialSearchingDSummary, [Boost Serialization](http://www.boost.org/libs/serialization) and
[Boost IO Streams](http://www.boost.org/libs/iostreams)}
\cgalPkgBib{cgal:lm-clscm-12}
\cgalPkgLicense{\ref licensesGPL "GPL"}
\cgalPkgDemo{Operations on Polyhedra,polyhedron_3.zip}
\cgalPkgShortInfoEnd

\cgalPkgDescriptionEnd

\cgalClassifedRefPages

## Concepts ##

- `CGAL::Classification::Classifier`
- `CGAL::Classification::NeighborQuery`

## Main Functions ##

- `CGAL::Classification::classify()`
- `CGAL::Classification::classify_with_local_smoothing()`
- `CGAL::Classification::classify_with_graphcut()`

## Classifiers ##

- `CGAL::Classification::Sum_of_weighted_features_classifier`
- `CGAL::Classification::ETHZ_random_forest_classifier`
- `CGAL::Classification::OpenCV_random_forest_classifier`

## Common Data Structures ##

- `CGAL::Classification::Local_eigen_analysis`
- `CGAL::Classification::Planimetric_grid<GeomTraits, PointRange, PointMap>`
- `CGAL::Classification::Evaluation`

## Label ##

- `CGAL::Classification::Label`
- `CGAL::Classification::Label_handle`
- `CGAL::Classification::Label_set`

## Feature ##

- `CGAL::Classification::Feature_base`
- `CGAL::Classification::Feature_handle`
- `CGAL::Classification::Feature_set`

## Predefined Features ##

- `CGAL::Classification::Feature::Color_channel<GeomTraits, PointRange, ColorMap>`
- `CGAL::Classification::Feature::Distance_to_plane<PointRange, PointMap>`
- `CGAL::Classification::Feature::Echo_scatter<GeomTraits, PointRange, PointMap, EchoMap>`
- `CGAL::Classification::Feature::Eigenvalue`
- `CGAL::Classification::Feature::Elevation<GeomTraits, PointRange, PointMap>`
- `CGAL::Classification::Feature::Simple_feature<InputRange, PropertyMap>`
- `CGAL::Classification::Feature::Vertical_dispersion<GeomTraits, PointRange, PointMap>`
- `CGAL::Classification::Feature::Verticality<GeomTraits>`

## Point Set Classification ##

- `CGAL::Classification::Point_set_feature_generator<GeomTraits, PointRange, PointMap, ConcurrencyTag, DiagonalizeTraits>`
- `CGAL::Classification::Point_set_neighborhood<GeomTraits, PointRange, PointMap>`

## Mesh Classification ##

- `CGAL::Classification::Mesh_feature_generator<GeomTraits, FaceGraph, PointMap, ConcurrencyTag, DiagonalizeTraits>`
- `CGAL::Classification::Mesh_neighborhood<FaceListGraph>`
- `CGAL::Classification::Face_descriptor_to_center_of_mass_map<FaceListGraph, VertexPointMap>`
- `CGAL::Classification::Face_descriptor_to_face_descriptor_with_bbox_map<FaceListGraph, VertexPointMap>`

## Cluster Classification ##

- `CGAL::Classification::Cluster<ItemRange, ItemMap>`
- `CGAL::Classification::create_clusters_from_indices()`
- `CGAL::Classification::Feature::Cluster_mean_of_feature`
- `CGAL::Classification::Feature::Cluster_variance_of_feature`
- `CGAL::Classification::Feature::Cluster_size`
- `CGAL::Classification::Feature::Cluster_vertical_extent`

*/
