HierarchicalCluster.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /**
  2. * @file HierarchicalCluster.h
  3. * @brief Hierarchical Clustering wrapper
  4. * @author Michael Koch
  5. * @date 10/25/2010
  6. */
  7. #ifndef HierarchicalClusterINCLUDE
  8. #define HierarchicalClusterINCLUDE
  9. #include "core/vector/VectorT.h"
  10. #include "core/vector/MatrixT.h"
  11. #include "ClusterAlgorithm.h"
  12. #include <vector>
  13. namespace OBJREC {
  14. /** Hierarchical Clustering */
  15. class HierarchicalCluster : public ClusterAlgorithm
  16. {
  17. protected:
  18. int noClasses;
  19. char method;
  20. int distanceType;
  21. int compute_prototypes ( const NICE::VVector & features,
  22. NICE::VVector & prototypes,
  23. std::vector<double> & weights,
  24. const std::vector<int> & assignment );
  25. char distanceFunction(int distanceType);
  26. void VVectorToDoubleArray(const NICE::VVector &data,double ** &doublearray,int ** &mask);
  27. public:
  28. /** simple constructor */
  29. HierarchicalCluster( int noClasses , char method='s',int distanceMode=0);
  30. /** simple destructor */
  31. virtual ~HierarchicalCluster();
  32. void cluster ( const NICE::VVector & features,
  33. NICE::VVector & prototypes,
  34. std::vector<double> & weights,
  35. std::vector<int> & assignment );
  36. };
  37. } // namespace
  38. #endif