HierarchicalCluster.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. #ifdef NOVISUAL
  10. #include <vislearning/nice_nonvis.h>
  11. #else
  12. #include <vislearning/nice.h>
  13. #endif
  14. #include "ClusterAlgorithm.h"
  15. #include <vector>
  16. namespace OBJREC {
  17. /** Hierarchical Clustering */
  18. class HierarchicalCluster : public ClusterAlgorithm
  19. {
  20. protected:
  21. int noClasses;
  22. char method;
  23. int distanceType;
  24. int compute_prototypes ( const NICE::VVector & features,
  25. NICE::VVector & prototypes,
  26. std::vector<double> & weights,
  27. const std::vector<int> & assignment );
  28. char distanceFunction(int distanceType);
  29. void VVectorToDoubleArray(const NICE::VVector &data,double ** &doublearray,int ** &mask);
  30. public:
  31. /** simple constructor */
  32. HierarchicalCluster( int noClasses , char method='s',int distanceMode=0);
  33. /** simple destructor */
  34. virtual ~HierarchicalCluster();
  35. void cluster ( const NICE::VVector & features,
  36. NICE::VVector & prototypes,
  37. std::vector<double> & weights,
  38. std::vector<int> & assignment );
  39. };
  40. } // namespace
  41. #endif