00001
00017 #ifndef MDS_TRIMEMBERSHIPEM2_H
00018 #define MDS_TRIMEMBERSHIPEM2_H
00019
00020 #define EM_LOGGING_ENABLED
00021
00022 #include "mdsTriMembershipFunc.h"
00023
00024
00025 #include <MDSTk/Base/mdsSTLContainer.h>
00026 #include <MDSTk/Math/Algorithm/mdsEM.h>
00027
00028
00029 #include <vector>
00030
00031
00032 namespace mds
00033 {
00034 namespace seg
00035 {
00036
00037
00044 class CTriMembershipEM2 : public CTriMembershipFunc
00045 {
00046 public:
00048 typedef std::vector<CTriFeatures> tSubRegions;
00049
00050 public:
00052 CTriMembershipEM2(tSubRegions& SubRegions, double dMinAddChange);
00053
00055 virtual ~CTriMembershipEM2() {}
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::CMaxLikelihoodByEM<tContainer, NUM_OF_FEATURES> m_EM;
00075
00077 tSubRegions& m_SubRegions;
00078 };
00079
00080
00081 }
00082 }
00083
00084 #endif // MDS_TRIMEMBERSHIPEM2_H
00085