21 #ifndef otbFastICAImageFilter_h
22 #define otbFastICAImageFilter_h
24 #include "itkImageToImageFilter.h"
46 template <
class TInputImage,
class TOutputImage, Transform::TransformDirection TDirectionOfTransformation>
52 typedef itk::ImageToImageFilter<TInputImage, TOutputImage>
Superclass;
63 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
64 itkStaticConstMacro(OutputImageDimension,
unsigned int, TOutputImage::ImageDimension);
97 itkGetMacro(NumberOfPrincipalComponentsRequired,
unsigned int);
98 itkSetMacro(NumberOfPrincipalComponentsRequired,
unsigned int);
109 return this->GetPCAFilter()->GetMeanValues();
113 m_PCAFilter->SetMeanValues(vec);
118 return this->GetPCAFilter()->GetStdDevValues();
122 m_PCAFilter->SetStdDevValues(vec);
127 return this->GetPCAFilter()->GetTransformationMatrix();
131 m_PCAFilter->SetTransformationMatrix(mat, isForward);
134 itkGetConstMacro(TransformationMatrix, MatrixType);
135 itkGetMacro(TransformationMatrix, MatrixType);
138 m_IsTransformationForward = isForward;
139 m_GivenTransformationMatrix =
true;
140 m_TransformationMatrix = mat;
144 itkGetMacro(NumberOfIterations,
unsigned int);
145 itkSetMacro(NumberOfIterations,
unsigned int);
147 itkGetMacro(ConvergenceThreshold,
double);
148 itkSetMacro(ConvergenceThreshold,
double);
152 m_NonLinearity = NonLinearity;
153 m_NonLinearityDerivative = NonLinearityDerivative;
157 itkGetMacro(NonLinearity, NonLinearityType);
158 itkGetMacro(NonLinearityDerivative, NonLinearityType);
160 itkGetMacro(Mu,
double);
161 itkSetMacro(Mu,
double);
177 void GenerateOutputInformation()
override;
182 void GenerateData()
override;
185 void ForwardGenerateOutputInformation();
186 void ReverseGenerateOutputInformation();
187 virtual void ForwardGenerateData();
188 virtual void ReverseGenerateData();
192 virtual void GenerateTransformationMatrix();
214 void operator=(
const Self&) =
delete;
219 #ifndef OTB_MANUAL_INSTANTIATION