25 #include "itkImageToImageFilter.h"
26 #include "itkEuclideanDistanceMetric.h"
58 template <
class TListSample,
class TMap,
class TSOMLearningBehaviorFunctor = Functor::CzihoSOMLearningBehaviorFunctor,
59 class TSOMNeighborhoodBehaviorFunctor = Functor::CzihoSOMNeighborhoodBehaviorFunctor>
60 class ITK_EXPORT
SOM :
public itk::ImageSource<TMap>
74 itkTypeMacro(
SOM, ImageSource);
90 itkStaticConstMacro(MapDimension,
unsigned int, MapType::ImageDimension);
93 itkSetMacro(NumberOfIterations,
unsigned int);
94 itkGetMacro(NumberOfIterations,
unsigned int);
95 itkSetMacro(BetaInit,
double);
96 itkGetMacro(BetaInit,
double);
97 itkSetMacro(BetaEnd,
double);
98 itkGetMacro(BetaEnd,
double);
107 itkSetMacro(RandomInit,
bool);
108 itkGetMacro(RandomInit,
bool);
109 itkSetMacro(Seed,
unsigned int);
110 itkGetMacro(Seed,
unsigned int);
117 m_BetaFunctor = functor;
122 m_NeighborhoodSizeFunctor = functor;
133 void GenerateOutputInformation()
override;
136 void AllocateOutputs()
override;
139 void GenerateData(
void)
override;
147 virtual void UpdateMap(
const NeuronType& sample,
double beta, SizeType& radius);
152 virtual void Step(
unsigned int currentIteration);
155 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
198 #ifndef OTB_MANUAL_INSTANTIATION
This class is responsible for the learning of a self organizing map from a set of vector represented ...
itkGetObjectMacro(ListSample, ListSampleType)
unsigned int m_NumberOfIterations
void SetNeighborhoodSizeFunctor(const SOMNeighborhoodBehaviorFunctorType &functor)
TSOMNeighborhoodBehaviorFunctor SOMNeighborhoodBehaviorFunctorType
SOMNeighborhoodBehaviorFunctorType m_NeighborhoodSizeFunctor
ListSamplePointerType m_ListSample
itk::SmartPointer< const Self > ConstPointer
MapType::PixelType NeuronType
SOMLearningBehaviorFunctorType m_BetaFunctor
SizeType m_NeighborhoodSizeInit
MapType::IndexType IndexType
void operator=(const Self &)=delete
MapType::Pointer MapPointerType
itk::ImageSource< TMap > Superclass
itk::SmartPointer< Self > Pointer
TListSample ListSampleType
MapType::RegionType RegionType
NeuronType::ValueType ValueType
MapType::SizeType SizeType
TSOMLearningBehaviorFunctor SOMLearningBehaviorFunctorType
void SetBetaFunctor(const SOMLearningBehaviorFunctorType &functor)
ListSampleType::Pointer ListSamplePointerType
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.