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
OutputPointer 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
typename TInputSample::Pointer m_Input ;
00101
typename TClassMaskSample::Pointer 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