18 #ifndef __otbSVMImageModelEstimator_txx
19 #define __otbSVMImageModelEstimator_txx
30 template<
class TInputImage,
class TTrainingImage>
34 this->SetNumberOfRequiredInputs(2);
37 template<
class TInputImage,
46 template<
class TInputImage,
52 Superclass::PrintSelf(os, indent);
55 template<
class TInputImage,
class TTrainingImage>
63 template<
class TInputImage,
class TTrainingImage>
71 template<
class TInputImage,
class TTrainingImage>
76 if (this->GetNumberOfInputs() < 1)
83 template<
class TInputImage,
class TTrainingImage>
84 const TTrainingImage *
88 if (this->GetNumberOfInputs() < 2)
98 template<
class TInputImage,
105 const TInputImage * inputImage = this->GetInputImage();
106 const TTrainingImage * trainingImage = this->GetTrainingImage();
110 typename TInputImage::SizeType
111 inputImageSize = inputImage->GetBufferedRegion().GetSize();
112 typename TTrainingImage::SizeType
113 trainingImageSize = trainingImage->GetBufferedRegion().GetSize();
116 for (
unsigned int i = 0; i < TInputImage::ImageDimension; ++i)
118 if (inputImageSize[i] != trainingImageSize[i])
122 "Input image size is not the same as the training image size.",
130 InputIteratorType inIt(inputImage, inputImage->GetBufferedRegion());
131 TrainingIteratorType trIt(trainingImage, trainingImage->GetBufferedRegion());
140 unsigned int numberOfComponents = inIt.Get().Size();
142 while (!inIt.IsAtEnd() && !trIt.IsAtEnd())
146 typename Superclass::ModelType::MeasurementType v;
148 for (
unsigned int k = 0; k < numberOfComponents; ++k)
150 v.push_back(inIt.Get()[k]);