Loading...
Searching...
No Matches
itkRecursiveBSplineInterpolationWeightFunction.h
Go to the documentation of this file.
/*=========================================================================
*
* Copyright UMC Utrecht and contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*=========================================================================*/
#ifndef itkRecursiveBSplineInterpolationWeightFunction_h
#define itkRecursiveBSplineInterpolationWeightFunction_h
#include "itkBSplineInterpolationWeightFunction.h"
#include "itkBSplineKernelFunction2.h"
#include "itkBSplineDerivativeKernelFunction2.h"
#include "itkBSplineSecondOrderDerivativeKernelFunction2.h"
#include "itkMath.h"
namespace itk
{
template <typename TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
class ITK_TEMPLATE_EXPORT RecursiveBSplineInterpolationWeightFunction
: public BSplineInterpolationWeightFunction<TCoordRep, VSpaceDimension, VSplineOrder>
{
public:
ITK_DISALLOW_COPY_AND_MOVE(RecursiveBSplineInterpolationWeightFunction);
using Self = RecursiveBSplineInterpolationWeightFunction;
using Superclass = BSplineInterpolationWeightFunction<TCoordRep, VSpaceDimension, VSplineOrder>;
using Pointer = SmartPointer<Self>;
using ConstPointer = SmartPointer<const Self>;
itkNewMacro(Self);
itkTypeMacro(RecursiveBSplineInterpolationWeightFunction, FunctionBase);
itkStaticConstMacro(SpaceDimension, unsigned int, VSpaceDimension);
itkStaticConstMacro(SplineOrder, unsigned int, VSplineOrder);
using typename Superclass::WeightsType;
using typename Superclass::IndexType;
using typename Superclass::SizeType;
using typename Superclass::ContinuousIndexType;
static constexpr unsigned NumberOfIndices = Math::UnsignedPower(VSplineOrder + 1, VSpaceDimension);
itkGetConstMacro(NumberOfIndices, unsigned int);
WeightsType
Evaluate(const ContinuousIndexType & index, IndexType & startIndex) const;
WeightsType
EvaluateDerivative(const ContinuousIndexType & index, const IndexType & startIndex) const;
WeightsType
EvaluateSecondOrderDerivative(const ContinuousIndexType & index, const IndexType & startIndex) const;
protected:
RecursiveBSplineInterpolationWeightFunction() = default;
~RecursiveBSplineInterpolationWeightFunction() override = default;
using Superclass::PrintSelf;
private:
WeightsType
Evaluate(const ContinuousIndexType & index) const override;
void
Evaluate(const ContinuousIndexType & index, WeightsType & weights, IndexType & startIndex) const override;
unsigned int m_NumberOfIndices{};
using KernelType = BSplineKernelFunction2<VSplineOrder>;
using DerivativeKernelType = BSplineDerivativeKernelFunction2<VSplineOrder>;
using SecondOrderDerivativeKernelType = BSplineSecondOrderDerivativeKernelFunction2<VSplineOrder>;
};
} // end namespace itk
#ifndef ITK_MANUAL_INSTANTIATION
# include "itkRecursiveBSplineInterpolationWeightFunction.hxx"
#endif
#endif
itk::BSplineDerivativeKernelFunction2
Derivative of a B-spline kernel used for density estimation and nonparametric regression.
Definition itkBSplineDerivativeKernelFunction2.h:59
itk::BSplineKernelFunction2
B-spline kernel used for density estimation and nonparameteric regression.
Definition itkBSplineKernelFunction2.h:59
itk::BSplineSecondOrderDerivativeKernelFunction2
Derivative of a B-spline kernel used for density estimation and nonparametric regression.
Definition itkBSplineSecondOrderDerivativeKernelFunction2.h:45
itk::RecursiveBSplineInterpolationWeightFunction::RecursiveBSplineInterpolationWeightFunction
RecursiveBSplineInterpolationWeightFunction()=default
itk::RecursiveBSplineInterpolationWeightFunction::~RecursiveBSplineInterpolationWeightFunction
~RecursiveBSplineInterpolationWeightFunction() override=default
itk::RecursiveBSplineInterpolationWeightFunction::ConstPointer
SmartPointer< const Self > ConstPointer
Definition itkRecursiveBSplineInterpolationWeightFunction.h:58
itk::RecursiveBSplineInterpolationWeightFunction< TScalarType, NDimensions, VSplineOrder >::NumberOfIndices
static constexpr unsigned NumberOfIndices
Definition itkRecursiveBSplineInterpolationWeightFunction.h:79
itk::RecursiveBSplineInterpolationWeightFunction::EvaluateSecondOrderDerivative
WeightsType EvaluateSecondOrderDerivative(const ContinuousIndexType &index, const IndexType &startIndex) const
itk::RecursiveBSplineInterpolationWeightFunction::KernelType
BSplineKernelFunction2< VSplineOrder > KernelType
Definition itkRecursiveBSplineInterpolationWeightFunction.h:119
itk::RecursiveBSplineInterpolationWeightFunction::EvaluateDerivative
WeightsType EvaluateDerivative(const ContinuousIndexType &index, const IndexType &startIndex) const
itk::RecursiveBSplineInterpolationWeightFunction::SecondOrderDerivativeKernelType
BSplineSecondOrderDerivativeKernelFunction2< VSplineOrder > SecondOrderDerivativeKernelType
Definition itkRecursiveBSplineInterpolationWeightFunction.h:121
itk::RecursiveBSplineInterpolationWeightFunction::itkStaticConstMacro
itkStaticConstMacro(SplineOrder, unsigned int, VSplineOrder)
itk::RecursiveBSplineInterpolationWeightFunction::ITK_DISALLOW_COPY_AND_MOVE
ITK_DISALLOW_COPY_AND_MOVE(RecursiveBSplineInterpolationWeightFunction)
itk::RecursiveBSplineInterpolationWeightFunction< TScalarType, NDimensions, VSplineOrder >::m_NumberOfIndices
unsigned int m_NumberOfIndices
Definition itkRecursiveBSplineInterpolationWeightFunction.h:116
itk::RecursiveBSplineInterpolationWeightFunction::Evaluate
WeightsType Evaluate(const ContinuousIndexType &index, IndexType &startIndex) const
itk::RecursiveBSplineInterpolationWeightFunction::Pointer
SmartPointer< Self > Pointer
Definition itkRecursiveBSplineInterpolationWeightFunction.h:57
itk::RecursiveBSplineInterpolationWeightFunction::Self
RecursiveBSplineInterpolationWeightFunction Self
Definition itkRecursiveBSplineInterpolationWeightFunction.h:55
itk::RecursiveBSplineInterpolationWeightFunction::Evaluate
WeightsType Evaluate(const ContinuousIndexType &index) const override
itk::RecursiveBSplineInterpolationWeightFunction::Superclass
BSplineInterpolationWeightFunction< TCoordRep, VSpaceDimension, VSplineOrder > Superclass
Definition itkRecursiveBSplineInterpolationWeightFunction.h:56
itk::RecursiveBSplineInterpolationWeightFunction::itkStaticConstMacro
itkStaticConstMacro(SpaceDimension, unsigned int, VSpaceDimension)
itk::RecursiveBSplineInterpolationWeightFunction::Evaluate
void Evaluate(const ContinuousIndexType &index, WeightsType &weights, IndexType &startIndex) const override
itk::RecursiveBSplineInterpolationWeightFunction::DerivativeKernelType
BSplineDerivativeKernelFunction2< VSplineOrder > DerivativeKernelType
Definition itkRecursiveBSplineInterpolationWeightFunction.h:120
itkBSplineDerivativeKernelFunction2.h
itkBSplineKernelFunction2.h
itkBSplineSecondOrderDerivativeKernelFunction2.h
itk
Definition itkAdvancedImageToImageMetric.h:43

Generated on 1768596610 for elastix by 1.15.0 |