Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
#include <itkReducedDimensionBSplineInterpolateImageFunction.h>
Evaluates the B-Spline interpolation of an image. Spline order may be from 0 to 5.
This class defines N-Dimension B-Spline transformation. It is based on:
[1] M. Unser, "Splines: A Perfect Fit for Signal and Image Processing," IEEE Signal Processing Magazine, vol. 16, no. 6, pp. 22-38, November 1999.
[2] M. Unser, A. Aldroubi and M. Eden, "B-Spline Signal Processing: Part I--Theory," IEEE Transactions on Signal Processing, vol. 41, no. 2, pp. 821-832, February 1993.
[3] M. Unser, A. Aldroubi and M. Eden, "B-Spline Signal Processing: Part II--Efficient Design and Applications," IEEE Transactions on Signal Processing, vol. 41, no. 2, pp. 834-848, February 1993.
And code obtained from bigwww.epfl.ch by Philippe Thevenaz.
The B spline coefficients are calculated through the MultiOrderBSplineDecompositionImageFilter to enable a zero-th order for the last dimension.
Limitations: Spline order must be between 0 and 5. Spline order must be set before setting the image. Requires same spline order for every dimension. Uses mirror boundary conditions. Spline is determined in all dimensions, cannot selectively pick dimension for calculating spline.
Definition at line 91 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
Public Types | |
typedef TCoefficientType | CoefficientDataType |
typedef MultiOrderBSplineDecompositionImageFilter< TImageType, CoefficientImageType > | CoefficientFilter |
typedef CoefficientFilter::Pointer | CoefficientFilterPointer |
typedef Image< CoefficientDataType, itkGetStaticConstMacro(ImageDimension) > | CoefficientImageType |
typedef SmartPointer< const Self > | ConstPointer |
typedef Superclass::ContinuousIndexType | ContinuousIndexType |
typedef CovariantVector< OutputType, itkGetStaticConstMacro(ImageDimension) > | CovariantVectorType |
typedef Superclass::IndexType | IndexType |
typedef Superclass::InputImageType | InputImageType |
typedef ImageLinearIteratorWithIndex< TImageType > | Iterator |
typedef Superclass::OutputType | OutputType |
typedef SmartPointer< Self > | Pointer |
typedef Superclass::PointType | PointType |
typedef ReducedDimensionBSplineInterpolateImageFunction | Self |
using | SizeType = typename TImageType::SizeType |
typedef InterpolateImageFunction< TImageType, TCoordRep > | Superclass |
Public Member Functions | |
OutputType | EvaluateAtContinuousIndex (const ContinuousIndexType &index) const override |
CovariantVectorType | EvaluateDerivative (const PointType &point) const |
CovariantVectorType | EvaluateDerivativeAtContinuousIndex (const ContinuousIndexType &x) const |
virtual const char * | GetClassName () const |
virtual int | GetSplineOrder () const |
virtual bool | GetUseImageDirection () const |
itkStaticConstMacro (ImageDimension, unsigned int, Superclass::ImageDimension) | |
void | SetInputImage (const TImageType *inputData) override |
void | SetSplineOrder (unsigned int SplineOrder) |
virtual void | SetUseImageDirection (bool _arg) |
virtual void | UseImageDirectionOff () |
virtual void | UseImageDirectionOn () |
Static Public Member Functions | |
static Pointer | New () |
Protected Member Functions | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
ReducedDimensionBSplineInterpolateImageFunction () | |
~ReducedDimensionBSplineInterpolateImageFunction () override | |
Protected Attributes | |
CoefficientImageType::ConstPointer | m_Coefficients |
TImageType::SizeType | m_DataLength |
std::vector< CoefficientDataType > | m_Scratch |
unsigned int | m_SplineOrder |
Private Member Functions | |
void | ApplyMirrorBoundaryConditions (vnl_matrix< long > &evaluateIndex, unsigned int splineOrder) const |
void | DetermineRegionOfSupport (vnl_matrix< long > &evaluateIndex, const ContinuousIndexType &x, unsigned int splineOrder) const |
void | GeneratePointsToIndex () |
SizeType | GetRadius () const override |
void | operator= (const Self &) |
ReducedDimensionBSplineInterpolateImageFunction (const Self &) | |
void | SetDerivativeWeights (const ContinuousIndexType &x, const vnl_matrix< long > &EvaluateIndex, vnl_matrix< double > &weights, unsigned int splineOrder) const |
void | SetInterpolationWeights (const ContinuousIndexType &x, const vnl_matrix< long > &EvaluateIndex, vnl_matrix< double > &weights, unsigned int splineOrder) const |
Private Attributes | |
Iterator | m_CIterator |
CoefficientFilterPointer | m_CoefficientFilter |
unsigned long | m_MaxNumberInterpolationPoints |
std::vector< IndexType > | m_PointsToIndex |
bool | m_UseImageDirection |
typedef TCoefficientType itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::CoefficientDataType |
Internal Coefficient typedef support
Definition at line 132 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef MultiOrderBSplineDecompositionImageFilter< TImageType, CoefficientImageType > itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::CoefficientFilter |
Define filter for calculating the BSpline coefficients
Definition at line 139 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef CoefficientFilter::Pointer itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::CoefficientFilterPointer |
Definition at line 141 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef Image< CoefficientDataType, itkGetStaticConstMacro( ImageDimension ) > itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::CoefficientImageType |
Definition at line 135 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef SmartPointer< const Self > itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::ConstPointer |
Definition at line 100 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef Superclass::ContinuousIndexType itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::ContinuousIndexType |
ContinuousIndex typedef support.
Definition at line 123 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef CovariantVector< OutputType, itkGetStaticConstMacro( ImageDimension ) > itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::CovariantVectorType |
Derivative typedef support
Definition at line 157 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef Superclass::IndexType itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::IndexType |
Index typedef support.
Definition at line 120 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef Superclass::InputImageType itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::InputImageType |
InputImageType typedef support.
Definition at line 114 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef ImageLinearIteratorWithIndex< TImageType > itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::Iterator |
Iterator typedef support
Definition at line 129 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef Superclass::OutputType itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::OutputType |
OutputType typedef support.
Definition at line 109 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef SmartPointer< Self > itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::Pointer |
Definition at line 99 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef Superclass::PointType itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::PointType |
PointType typedef support
Definition at line 126 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef ReducedDimensionBSplineInterpolateImageFunction itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::Self |
Standard class typedefs.
Definition at line 97 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
using itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::SizeType = typename TImageType::SizeType |
Definition at line 111 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
typedef InterpolateImageFunction< TImageType, TCoordRep > itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::Superclass |
Definition at line 98 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
|
protected |
|
inlineoverrideprotected |
Definition at line 198 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
|
private |
|
private |
Set the indicies in evaluateIndex at the boundaries based on mirror boundary conditions.
|
private |
Determines the indicies to use give the splines region of support
|
override |
Evaluate the function at a ContinuousIndex position.
Returns the B-Spline interpolated image intensity at a specified point position. No bounds checking is done. The point is assume to lie within the image buffer.
ImageFunction::IsInsideBuffer() can be used to check bounds before calling the method.
|
inline |
Definition at line 159 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
CovariantVectorType itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::EvaluateDerivativeAtContinuousIndex | ( | const ContinuousIndexType & | x | ) | const |
|
private |
Precomputation for converting the 1D index of the interpolation neighborhood to an N-dimensional index.
|
virtual |
Run-time type information (and related methods).
Reimplemented in elastix::ReducedDimensionBSplineInterpolator< TElastix >, and elastix::ReducedDimensionBSplineResampleInterpolator< TElastix >.
|
inlineoverrideprivate |
Definition at line 213 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
|
virtual |
|
virtual |
itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::itkStaticConstMacro | ( | ImageDimension | , |
unsigned int | , | ||
Superclass::ImageDimension | |||
) |
Dimension underlying input image.
|
static |
New macro for creation of through a Smart Pointer
|
private |
|
overrideprotected |
|
private |
Determines the weights for the derivative portion of the value x
|
override |
Set the input image. This must be set by the user.
|
private |
Determines the weights for interpolation of the value x
void itk::ReducedDimensionBSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::SetSplineOrder | ( | unsigned int | SplineOrder | ) |
Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.
|
virtual |
The UseImageDirection flag determines whether image derivatives are computed with respect to the image grid or with respect to the physical space. When this flag is ON the derivatives are computed with respect to the coordinate system of physical space. The difference is whether we take into account the image Direction or not. The flag ON will take into account the image direction and will result in an extra matrix multiplication compared to the amount of computation performed when the flag is OFF. The default value of this flag is the same as the CMAKE option ITK_IMAGE_BEHAVES_AS_ORIENTED_IMAGE (i.e ON by default when ITK_IMAGE_BEHAVES_AS_ORIENTED_IMAGE is ON, and OFF by default when ITK_IMAGE_BEHAVES_AS_ORIENTED_IMAGE is OFF).
|
virtual |
|
virtual |
|
private |
Definition at line 244 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
|
private |
Definition at line 248 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
|
protected |
Definition at line 206 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
|
protected |
Definition at line 203 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
|
private |
Definition at line 245 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
|
private |
Definition at line 246 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
|
protected |
Definition at line 202 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
|
protected |
Definition at line 204 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
|
private |
Definition at line 252 of file itkReducedDimensionBSplineInterpolateImageFunction.h.
Generated on 1667476801 for elastix by 1.9.4 |