00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkMembershipSampleGenerator_h
00018 #define __itkMembershipSampleGenerator_h
00019
00020
00021 #include "itkObject.h"
00022 #include "itkMembershipSample.h"
00023
00024 namespace itk{
00025 namespace Statistics{
00026
00050 template< class TInputSample, class TClassMaskSample >
00051 class ITK_EXPORT MembershipSampleGenerator :
00052 public Object
00053 {
00054 public:
00056 typedef MembershipSampleGenerator Self;
00057 typedef Object Superclass ;
00058 typedef SmartPointer<Self> Pointer;
00059
00061 itkTypeMacro(MembershipSampleGenerator, Object);
00062 itkNewMacro(Self) ;
00063
00065 typedef typename TInputSample::MeasurementVectorType MeasurementVectorType ;
00066
00068 typedef MembershipSample< TInputSample > OutputType ;
00069 typedef typename OutputType::Pointer OutputPointer ;
00070
00072 void SetInput(TInputSample* sample) ;
00073
00075 TInputSample* GetInput() ;
00076
00078 void SetClassMask(TClassMaskSample* classMask) ;
00079
00081 TClassMaskSample* GetClassMask() ;
00082
00083 void SetNumberOfClasses(int numberOfClasses) ;
00084
00085 int GetNumberOfClasses() ;
00086
00089 OutputType* GetOutput() ;
00090
00092 void GenerateData() ;
00093
00094 protected:
00095 MembershipSampleGenerator() ;
00096 virtual ~MembershipSampleGenerator() {}
00097 void PrintSelf(std::ostream& os, Indent indent) const;
00098
00099 private:
00100 TInputSample* m_Input ;
00101 TClassMaskSample* m_ClassMask ;
00102 int m_NumberOfClasses ;
00103 OutputPointer m_Output ;
00104 } ;
00105
00106 }
00107 }
00108
00109 #ifndef ITK_MANUAL_INSTANTIATION
00110 #include "itkMembershipSampleGenerator.txx"
00111 #endif
00112
00113 #endif