18#ifndef itkSymmetricEigenAnalysisImageFilter_h
19#define itkSymmetricEigenAnalysisImageFilter_h
23#include "ITKImageIntensityExport.h"
38#if !defined(ITK_LEGACY_REMOVE)
42template <
typename TInput,
typename TOutput>
59 TOutput eigenValues{};
79#if !defined(ITK_LEGACY_REMOVE)
83#if !defined(ITK_LEGACY_REMOVE)
87 static constexpr EigenValueOrderEnum OrderByMagnitude = EigenValueOrderEnum::OrderByMagnitude;
97 if (order == EigenValueOrderEnum::OrderByMagnitude)
101 else if (order == EigenValueOrderEnum::DoNotOrder)
116 return EigenValueOrderEnum::OrderByMagnitude;
120 return EigenValueOrderEnum::OrderByValue;
122 return EigenValueOrderEnum::DoNotOrder;
130template <
unsigned int TMatrixDimension,
typename TInput,
typename TOutput>
160#if !defined(ITK_LEGACY_REMOVE)
164#if !defined(ITK_LEGACY_REMOVE)
168 static constexpr EigenValueOrderEnum OrderByMagnitude = EigenValueOrderEnum::OrderByMagnitude;
177 if (order == EigenValueOrderEnum::OrderByMagnitude)
181 else if (order == EigenValueOrderEnum::DoNotOrder)
192extern ITKImageIntensity_EXPORT std::ostream &
215template <
typename TInputImage,
typename TOutputImage>
220 Functor::SymmetricEigenAnalysisFunction<typename TInputImage::PixelType, typename TOutputImage::PixelType>>
241#if !defined(ITK_LEGACY_REMOVE)
319template <
unsigned int TMatrixDimension,
typename TInputImage,
typename TOutputImage = TInputImage>
324 Functor::SymmetricEigenAnalysisFixedDimensionFunction<TMatrixDimension,
325 typename TInputImage::PixelType,
326 typename TOutputImage::PixelType>>
337 typename TInputImage::PixelType,
338 typename TOutputImage::PixelType>>;
typename TInput::RealValueType RealValueType
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(SymmetricEigenAnalysisFixedDimensionFunction)
unsigned int GetDimension() const
CalculatorType m_Calculator
SymmetricEigenAnalysisFixedDimension< TMatrixDimension, TInput, TOutput > CalculatorType
bool operator==(const SymmetricEigenAnalysisFixedDimensionFunction &) const
void OrderEigenValuesBy(EigenValueOrderEnum order)
TOutput operator()(const TInput &x) const
SymmetricEigenAnalysis< TInput, TOutput > CalculatorType
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(SymmetricEigenAnalysisFunction)
bool operator==(const SymmetricEigenAnalysisFunction &) const
unsigned int GetDimension() const
CalculatorType m_Calculator
void OrderEigenValuesBy(EigenValueOrderEnum order)
EigenValueOrderEnum GetOrderEigenValuesBy() const
void SetDimension(unsigned int n)
TOutput operator()(const TInput &x) const
void SetOrderEigenValuesBy(EigenValueOrderEnum order)
typename TInput::RealValueType RealValueType
void PrintSelf(std::ostream &os, Indent indent) const override
Control indentation during Print() invocation.
Implements transparent reference counting.
UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::SymmetricEigenAnalysisFixedDimensionFunction< TMatrixDimension, typename TInputImage::PixelType, typename TOutputImage::PixelType > > Superclass
itk::EigenValueOrderEnum EigenValueOrderEnum
void PrintSelf(std::ostream &os, Indent indent) const override
unsigned int GetDimension() const
typename TOutputImage::PixelType OutputPixelType
~SymmetricEigenAnalysisFixedDimensionImageFilter() override=default
SymmetricEigenAnalysisFixedDimensionImageFilter Self
SymmetricEigenAnalysisFixedDimensionImageFilter()=default
typename InputPixelType::ValueType InputValueType
SmartPointer< const Self > ConstPointer
typename TInputImage::PixelType InputPixelType
SmartPointer< Self > Pointer
void OrderEigenValuesBy(EigenValueOrderEnum order)
typename InputPixelType::ValueType InputValueType
SymmetricEigenAnalysisImageFilter()
typename TInputImage::PixelType InputPixelType
void SetOrderEigenValuesBy(EigenValueOrderEnum order)
~SymmetricEigenAnalysisImageFilter() override=default
typename TOutputImage::PixelType OutputPixelType
SmartPointer< Self > Pointer
void PrintSelf(std::ostream &os, Indent indent) const override
unsigned int GetDimension() const
SmartPointer< const Self > ConstPointer
void OrderEigenValuesBy(EigenValueOrderEnum order)
void SetDimension(unsigned int p)
SymmetricEigenAnalysisImageFilter Self
EigenValueOrderEnum GetOrderEigenValuesBy() const
UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::SymmetricEigenAnalysisFunction< typename TInputImage::PixelType, typename TOutputImage::PixelType > > Superclass
Find Eigen values of a real 2D symmetric matrix. It serves as a thread-safe alternative to the class:...
UnaryFunctorImageFilter()
TOutputImage OutputImageType
Functor::SymmetricEigenAnalysisFunction< typename TInputImage::PixelType, typename TOutputImage::PixelType > FunctorType
FunctorType & GetFunctor()
#define itkConceptMacro(name, concept)
ITKImageIntensity_EXPORT std::ostream & operator<<(std::ostream &out, const EigenValueOrderEnum value)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
SymmetricEigenAnalysisEnums::EigenValueOrder EigenValueOrderEnum