00001
00017 #ifndef MDS_TRIMEMBERSHIPFCM2_H
00018 #define MDS_TRIMEMBERSHIPFCM2_H
00019
00020 #define FCM_LOGGING_ENABLED
00021
00022 #include "mdsTriMembershipFunc.h"
00023
00024
00025 #include <MDSTk/Base/mdsSTLContainer.h>
00026 #include <MDSTk/Math/Algorithm/mdsFuzzyCMeans.h>
00027
00028
00029 #include <vector>
00030
00031
00032 namespace mds
00033 {
00034 namespace seg
00035 {
00036
00037
00044 class CTriMembershipFCM2 : public CTriMembershipFunc
00045 {
00046 public:
00048 typedef std::vector<CTriFeatures> tSubRegions;
00049
00050 public:
00052 CTriMembershipFCM2(tSubRegions& SubRegions, double dWeight);
00053
00055 virtual ~CTriMembershipFCM2() {}
00056
00059 virtual bool operator()(vctl::MCTri *pFirstTriangle);
00060
00064 virtual bool operator()(vctl::MCTri *pFirstTriangle,
00065 mds::tSize NumOfClasses
00066 );
00067
00068 protected:
00070 typedef mds::base::CSTLContainer<tSubRegions> tContainer;
00071
00072 protected:
00074 mds::math::CFuzzyCMeans<tContainer, NUM_OF_FEATURES> m_FCM;
00075
00077 tSubRegions& m_SubRegions;
00078 };
00079
00080
00081 }
00082 }
00083
00084 #endif // MDS_TRIMEMBERSHIPFCM2_H
00085