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{};
78#if !defined(ITK_LEGACY_REMOVE)
82#if !defined(ITK_LEGACY_REMOVE)
86 static constexpr EigenValueOrderEnum OrderByMagnitude = EigenValueOrderEnum::OrderByMagnitude;
95 if (order == EigenValueOrderEnum::OrderByMagnitude)
99 else if (order == EigenValueOrderEnum::DoNotOrder)
114 return EigenValueOrderEnum::OrderByMagnitude;
118 return EigenValueOrderEnum::OrderByValue;
120 return EigenValueOrderEnum::DoNotOrder;
129template <
unsigned int TMatrixDimension,
typename TInput,
typename TOutput>
159#if !defined(ITK_LEGACY_REMOVE)
163#if !defined(ITK_LEGACY_REMOVE)
167 static constexpr EigenValueOrderEnum OrderByMagnitude = EigenValueOrderEnum::OrderByMagnitude;
176 if (order == EigenValueOrderEnum::OrderByMagnitude)
180 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)
317template <
unsigned int TMatrixDimension,
typename TInputImage,
typename TOutputImage = TInputImage>
322 Functor::SymmetricEigenAnalysisFixedDimensionFunction<TMatrixDimension,
323 typename TInputImage::PixelType,
324 typename TOutputImage::PixelType>>
335 typename TInputImage::PixelType,
336 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