DimensionalityReductionModel.h 1.22 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
#ifndef DimensionalityReductionModel_h
#define DimensionalityReductionModel_h
#include "itkObject.h"
#include "itkListSample.h"
namespace otb
{
template <class TInputValue>
class DimensionalityReductionModel: public itk::Object
{

public:
	
	typedef DimensionalityReductionModel Self;
	typedef itk::Object Superclass;
	typedef itk::SmartPointer<Self> Pointer;
	typedef itk::SmartPointer<const Self> ConstPointer;

	typedef TInputValue InputValueType;
	typedef itk::VariableLengthVector<InputValueType> InputSampleType;
	typedef itk::Statistics::ListSample<InputSampleType> InputListSampleType;


		
	itkSetObjectMacro(InputListSample,InputListSampleType);
	itkGetObjectMacro(InputListSample,InputListSampleType);
	itkGetConstObjectMacro(InputListSample,InputListSampleType);

	virtual void Save(const std::string & filename, const std::string & name="") = 0;
	virtual void Load(const std::string & filename, const std::string & name="") = 0;

	virtual void Train() = 0;
	virtual void Dimensionality_reduction() = 0;

protected:
	DimensionalityReductionModel(){};	
	typename InputListSampleType::Pointer m_InputListSample;


};
} // end namespace otb


//#ifndef OTB_MANUAL_INSTANTIATION
//#include "DimensionalityReductionModel.txx"
//#endif


#endif