23 #ifndef itkLinearAnisotropicDiffusionLBRImageFilter_h
24 #define itkLinearAnisotropicDiffusionLBRImageFilter_h
46 template< typename TImage, typename TScalar = typename NumericTraits< typename TImage::PixelType >::RealType >
67 static const int Dimension = ImageType::ImageDimension;
81 itkGetConstMacro(MaxNumberOfTimeSteps,
int);
84 itkGetConstMacro(RatioToMaxStableTimeStep,
ScalarType);
86 itkGetConstMacro(EffectiveDiffusionTime,
ScalarType);
87 itkGetConstMacro(EffectiveNumberOfTimeSteps,
int);
139 struct StencilFunctor;
152 #ifndef ITK_MANUAL_INSTANTIATION
153 #include "itkLinearAnisotropicDiffusionLBRImageFilter.hxx"
ImageType::Pointer m_NextImage
ImageRegion< Dimension > RegionType
int m_MaxNumberOfTimeSteps
Image< TensorType, Dimension > TensorImageType
static const unsigned int HalfStencilSize
ImageToImageFilter< TImage, TImage > Superclass
virtual void ImageUpdateLoop()
Automatically called by GenerateData.
Light weight base class for most itk classes.
virtual void GenerateData() override
virtual void ImageUpdate(ScalarType delta)
Represent the offset between two n-dimensional indexes in a n-dimensional image.
void SetMaxNumberOfTimeSteps(int n)
void SetRatioToMaxStableTimeStep(ScalarType ratio)
ImageType::Pointer m_PreviousImage
Vector< ScalarType, Dimension > VectorType
Represent a symmetric tensor of second rank.
ScalarType m_DiffusionTime
Vector< OffsetType, HalfStencilSize > StencilOffsetsType
void SetMaxDiffusionTime(ScalarType time)
An image region represents a structured region of data.
static const unsigned int StencilSize
void SetInputImage(const ImageType *image)
Vector< ScalarType, HalfStencilSize > StencilCoefficientsType
SmartPointer< const Self > ConstPointer
ImageType::ConstPointer GetInputImage()
ScalarType m_EffectiveDiffusionTime
SymmetricSecondRankTensor< ScalarType, Dimension > TensorType
std::pair< StencilBufferIndicesType, StencilCoefficientsType > StencilType
Automatically called by GenerateData.
static ITK_CONSTEXPR_FUNC T max(const T &)
Vector< InternalSizeT, StencilSize > StencilBufferIndicesType
void operator=(const Self &)
LinearAnisotropicDiffusionLBRImageFilter Self
Anisotropic diffusion using lattice basis reduction.
SmartPointer< const Self > ConstPointer
ImageType::PixelType PixelType
A templated class holding a n-Dimensional vector.
ScalarType m_RatioToMaxStableTimeStep
TensorImageType::ConstPointer GetInputTensor()
ScalarImageType::Pointer m_DiagonalCoefficients
virtual ScalarType MaxStableTimeStep()
InternalSizeT OutsideBufferIndex() const
virtual ~LinearAnisotropicDiffusionLBRImageFilter()
StencilImageType::Pointer m_StencilImage
virtual RegionType GetRequestedRegion()
int m_EffectiveNumberOfTimeSteps
virtual void GenerateStencils()
LinearAnisotropicDiffusionLBRImageFilter()
Base class for filters that take an image as input and produce an image as output.
Offset< Dimension > OffsetType
SmartPointer< Self > Pointer
Index< Dimension > IndexType
static const int Dimension
void SetInputTensor(const TensorImageType *tensorImage)
Represent a n-dimensional index in a n-dimensional image.
static ScalarType ScalarProduct(const TensorType &, const VectorType &, const VectorType &)
Templated n-dimensional image class.