21 #ifndef otbMNFImageFilter_h
22 #define otbMNFImageFilter_h
46 template <
class TInputImage,
class TOutputImage,
class TNoiseImageFilter, Transform::TransformDirection TDirectionOfTransformation>
47 class ITK_EXPORT
MNFImageFilter :
public itk::ImageToImageFilter<TInputImage, TOutputImage>
52 typedef itk::ImageToImageFilter<TInputImage, TOutputImage>
Superclass;
63 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
64 itkStaticConstMacro(OutputImageDimension,
unsigned int, TOutputImage::ImageDimension);
81 typedef typename MatrixObjectType::ComponentType
MatrixType;
97 itkGetMacro(NumberOfPrincipalComponentsRequired,
unsigned int);
98 itkSetMacro(NumberOfPrincipalComponentsRequired,
unsigned int);
108 itkGetMacro(UseNormalization,
bool);
109 itkSetMacro(UseNormalization,
bool);
116 m_GivenMeanValues =
true;
122 m_StdDevValues = vec;
123 m_UseNormalization =
true;
124 m_GivenStdDevValues =
true;
130 m_CovarianceMatrix = cov;
131 m_GivenCovarianceMatrix =
true;
137 m_NoiseCovarianceMatrix = mat;
138 m_GivenNoiseCovarianceMatrix =
true;
144 m_TransformationMatrix = transf;
145 m_GivenTransformationMatrix =
true;
146 m_IsTransformationMatrixForward = isForward;
152 m_Normalizer->GetCovarianceEstimator()->SetUserIgnoredValue(value);
153 m_Normalizer->GetCovarianceEstimator()->SetIgnoreUserDefinedValue(
true);
156 m_CovarianceEstimator->SetUserIgnoredValue(value);
157 m_CovarianceEstimator->SetIgnoreUserDefinedValue(
true);
160 m_NoiseCovarianceEstimator->SetUserIgnoredValue(value);
161 m_NoiseCovarianceEstimator->SetIgnoreUserDefinedValue(
true);
181 void GenerateOutputInformation()
override;
186 void GenerateData()
override;
188 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
191 void ForwardGenerateOutputInformation();
192 void ReverseGenerateOutputInformation();
193 virtual void ForwardGenerateData();
194 virtual void ReverseGenerateData();
198 virtual void GenerateTransformationMatrix();
232 #ifndef OTB_MANUAL_INSTANTIATION
Performs a Maximum Noise Fraction analysis of a vector image.
VectorType m_StdDevValues
void SetStdDevValues(const VectorType &vec)
NormalizeVectorImageFilter< InputImageType, OutputImageType > NormalizeFilterType
void SetMeanValues(const VectorType &vec)
itk::SmartPointer< const Self > ConstPointer
NormalizeFilterType::Pointer NormalizeFilterPointerType
CovarianceEstimatorFilterType::MatrixObjectType MatrixObjectType
itk::SmartPointer< Self > Pointer
TransformFilterType::Pointer TransformFilterPointerType
CovarianceEstimatorFilterPointerType m_CovarianceEstimator
CovarianceEstimatorFilterType::Pointer CovarianceEstimatorFilterPointerType
StreamingStatisticsVectorImageFilter< InputImageType > CovarianceEstimatorFilterType
MatrixType m_CovarianceMatrix
NoiseImageFilterPointerType m_NoiseImageFilter
bool m_GivenCovarianceMatrix
NormalizeFilterPointerType m_Normalizer
MatrixImageFilter< InputImageType, OutputImageType > TransformFilterType
Transform::TransformDirection TransformDirectionEnumType
bool m_GivenTransformationMatrix
TNoiseImageFilter NoiseImageFilterType
CovarianceEstimatorFilterType::RealType RealType
MNFImageFilter(const Self &)
void SetNoiseCovarianceMatrix(const MatrixType &mat)
bool m_IsTransformationMatrixForward
CovarianceEstimatorFilterPointerType m_NoiseCovarianceEstimator
MatrixType m_NoiseCovarianceMatrix
void SetTransformationMatrix(const MatrixType &transf, bool isForward=true)
MatrixObjectType::ComponentType MatrixType
MatrixType m_TransformationMatrix
void SetCovarianceMatrix(const MatrixType &cov)
CovarianceEstimatorFilterType::RealPixelType VectorType
~MNFImageFilter() override
NoiseImageFilterType::Pointer NoiseImageFilterPointerType
TInputImage InputImageType
TOutputImage OutputImageType
TransformFilterPointerType m_Transformer
itk::ImageToImageFilter< TInputImage, TOutputImage > Superclass
MatrixType::InternalMatrixType InternalMatrixType
unsigned int m_NumberOfPrincipalComponentsRequired
void SetStatisticsUserIgnoredValue(RealType value)
void operator=(const Self &)
InternalMatrixType::element_type MatrixElementType
bool m_GivenNoiseCovarianceMatrix
Apply a matrix multiplication over the channels of an image.
itk::SmartPointer< Self > Pointer
Normalize an VectorImage by setting its mean to zero and possibly variance to one (band by band).
itk::SmartPointer< Self > Pointer
This class streams the whole input image through the PersistentStatisticsImageFilter.
StatFilterType::RealType RealType
StatFilterType::RealPixelType RealPixelType
itk::SmartPointer< Self > Pointer
StatFilterType::MatrixObjectType MatrixObjectType
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.