18 #ifndef __otbSOMClassifier_txx
19 #define __otbSOMClassifier_txx
29 template<
class TSample,
class TSOMMap,
class TLabel>
33 this->SetNumberOfRequiredInputs(1);
35 this->SetNthInput(0, sommap.GetPointer());
36 m_Sample = SampleType::New();
37 m_Output = OutputType::New();
38 this->SetNthOutput(0, sommap.GetPointer());
43 template<
class TSample,
class TSOMMap,
class TLabel>
54 template<
class TSample,
class TSOMMap,
class TLabel>
64 template<
class TSample,
class TSOMMap,
class TLabel>
69 Superclass::PrintSelf(os, indent);
74 template<
class TSample,
class TSOMMap,
class TLabel>
80 outputPtr->SetSample(this->GetSample());
81 outputPtr->Resize(this->GetSample()->Size());
82 typename SOMMapType::SizeType size = this->GetMap()->GetLargestPossibleRegion().GetSize();
83 unsigned int numberOfClasses = 1;
84 for (
unsigned int i = 0; i < SOMMapType::ImageDimension; ++i)
86 numberOfClasses *= size[i];
88 outputPtr->SetNumberOfClasses(numberOfClasses);
90 typename TSample::Iterator iter = this->GetSample()->Begin();
91 typename TSample::Iterator end = this->GetSample()->End();
95 typename TSample::MeasurementVectorType measurements;
97 typename SOMMapType::IndexType index;
102 while (iter != end && iterO != endO)
105 measurements = iter.GetMeasurementVector();
106 index = somMap->GetWinner(measurements);