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);
105 itkSetMacro(NeighborhoodSizeInit,
SizeType);
106 itkGetMacro(NeighborhoodSizeInit,
SizeType);
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;
158 SOM(
const Self&) =
delete;
159 void operator=(
const Self&) =
delete;
198 #ifndef OTB_MANUAL_INSTANTIATION