ITK  4.2.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes
itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage > Class Template Reference

#include <itkBSplineScatteredDataPointSetToImageFilter.h>

+ Inheritance diagram for itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >:
+ Collaboration diagram for itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef TOutputImage ImageType
typedef ImageType::IndexType IndexType
typedef BSplineKernelFunction< 0 > KernelOrder0Type
typedef BSplineKernelFunction< 1 > KernelOrder1Type
typedef BSplineKernelFunction< 2 > KernelOrder2Type
typedef BSplineKernelFunction< 3 > KernelOrder3Type
typedef
CoxDeBoorBSplineKernelFunction< 3 > 
KernelType
typedef ImageType::PixelType PixelType
typedef
PointSetType::PointDataContainer 
PointDataContainerType
typedef PointSetType::PixelType PointDataType
typedef SmartPointer< SelfPointer
typedef PointSetType::Pointer PointSetPointer
typedef TInputPointSet PointSetType
typedef PointSetType::PointType PointType
typedef float RealType
typedef ImageType::RegionType RegionType
typedef
BSplineScatteredDataPointSetToImageFilter 
Self
typedef ImageType::SizeType SizeType
typedef PointSetToImageFilter
< TInputPointSet, TOutputImage > 
Superclass
typedef VectorContainer
< unsigned, RealType
WeightsContainerType
typedef Image< PointDataType,
itkGetStaticConstMacro(ImageDimension)> 
PointDataImageType
typedef Image< RealType,
itkGetStaticConstMacro(ImageDimension)> 
RealImageType
typedef RealImageType::Pointer RealImagePointer
typedef PointDataImageType::Pointer PointDataImagePointer
typedef FixedArray< unsigned,
itkGetStaticConstMacro(ImageDimension)> 
ArrayType
- Public Types inherited from itk::PointSetToImageFilter< TInputPointSet, TOutputImage >
typedef TOutputImage::DirectionType DirectionType
typedef
InputPointSetType::ConstPointer 
InputPointSetConstPointer
typedef InputPointSetType::Pointer InputPointSetPointer
typedef TInputPointSet InputPointSetType
typedef OutputImageType::Pointer OutputImagePointer
typedef
Superclass::OutputImageRegionType 
OutputImageRegionType
typedef TOutputImage OutputImageType
typedef TOutputImage::SpacingType SpacingType
typedef OutputImageType::ValueType ValueType
- Public Types inherited from itk::ImageSource< TOutputImage >
typedef
Superclass::DataObjectIdentifierType 
DataObjectIdentifierType
typedef DataObject::Pointer DataObjectPointer
typedef
Superclass::DataObjectPointerArraySizeType 
DataObjectPointerArraySizeType
typedef OutputImageType::PixelType OutputImagePixelType
- Public Types inherited from itk::ProcessObject
typedef std::vector
< DataObjectPointer
DataObjectPointerArray
typedef std::vector
< DataObjectIdentifierType
NameArray
- Public Types inherited from itk::Object
- Public Types inherited from itk::LightObject

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual void GenerateOutputImageOff ()
virtual void GenerateOutputImageOn ()
virtual const ArrayTypeGetCloseDimension ()
virtual const ArrayTypeGetCurrentNumberOfControlPoints ()
virtual const bool & GetGenerateOutputImage ()
virtual const ArrayTypeGetNumberOfControlPoints ()
virtual const ArrayTypeGetNumberOfLevels ()
virtual PointDataImagePointer GetPhiLattice () const
virtual const ArrayTypeGetSplineOrder ()
virtual void SetCloseDimension (ArrayType _arg)
virtual void SetGenerateOutputImage (bool _arg)
virtual void SetNumberOfControlPoints (ArrayType _arg)
void SetNumberOfLevels (unsigned int)
void SetNumberOfLevels (const ArrayType &)
void SetPointWeights (WeightsContainerType *weights)
void SetSplineOrder (unsigned int)
void SetSplineOrder (const ArrayType &)
- Public Member Functions inherited from itk::PointSetToImageFilter< TInputPointSet, TOutputImage >
const InputPointSetTypeGetInput (void)
const InputPointSetTypeGetInput (unsigned int idx)
virtual const char * GetNameOfClass () const
virtual const PointTypeGetOrigin ()
virtual const SpacingTypeGetSpacing ()
virtual void SetInput (const InputPointSetType *pointset)
virtual void SetInput (unsigned int, const InputPointSetType *pointset)
virtual void SetOrigin (const float *origin)
virtual void SetSpacing (const float *spacing)
virtual void SetSpacing (SpacingType _arg)
virtual void SetSpacing (const double *spacing)
virtual void SetDirection (DirectionType _arg)
virtual const DirectionTypeGetDirection ()
virtual void SetOrigin (PointType _arg)
virtual void SetOrigin (const double *origin)
virtual void SetInsideValue (ValueType _arg)
virtual ValueType GetInsideValue () const
virtual void SetOutsideValue (ValueType _arg)
virtual ValueType GetOutsideValue () const
virtual void SetSize (SizeType _arg)
virtual SizeType GetSize () const
- Public Member Functions inherited from itk::ImageSource< TOutputImage >
OutputImageTypeGetOutput (unsigned int idx)
virtual void GraftNthOutput (unsigned int idx, DataObject *output)
virtual void GraftOutput (DataObject *output)
virtual void GraftOutput (const DataObjectIdentifierType &key, DataObject *output)
OutputImageTypeGetOutput (void)
const OutputImageTypeGetOutput (void) const
virtual
ProcessObject::DataObjectPointer 
MakeOutput (ProcessObject::DataObjectPointerArraySizeType idx)
- Public Member Functions inherited from itk::ProcessObject
virtual void AbortGenerateDataOff ()
virtual void AbortGenerateDataOn ()
virtual void EnlargeOutputRequestedRegion (DataObject *)
virtual const bool & GetAbortGenerateData ()
NameArray GetInputNames () const
MultiThreader * GetMultiThreader () const
DataObjectPointerArraySizeType GetNumberOfIndexedInputs () const
DataObjectPointerArraySizeType GetNumberOfInputs () const
DataObjectPointerArraySizeType GetNumberOfOutputs () const
virtual
DataObjectPointerArraySizeType 
GetNumberOfValidRequiredInputs () const
NameArray GetOutputNames () const
virtual const float & GetProgress ()
NameArray GetRequiredInputNames () const
bool HasInput (const DataObjectIdentifierType &key) const
bool HasOutput (const DataObjectIdentifierType &key) const
virtual DataObjectPointer MakeOutput (const DataObjectIdentifierType &)
virtual void PrepareOutputs ()
virtual void PropagateRequestedRegion (DataObject *output)
virtual void ResetPipeline ()
virtual void SetAbortGenerateData (bool _arg)
virtual void SetProgress (float _arg)
virtual void Update ()
virtual void UpdateLargestPossibleRegion ()
virtual void UpdateOutputData (DataObject *output)
virtual void UpdateOutputInformation ()
void UpdateProgress (float amount)
DataObjectPointerArray GetInputs ()
DataObjectPointerArray GetOutputs ()
DataObjectPointerArray GetIndexedInputs ()
DataObjectPointerArray GetIndexedOutputs ()
DataObjectPointerArraySizeType GetNumberOfIndexedOutputs () const
virtual void SetReleaseDataFlag (bool flag)
virtual bool GetReleaseDataFlag () const
void ReleaseDataFlagOn ()
void ReleaseDataFlagOff ()
virtual void SetReleaseDataBeforeUpdateFlag (bool _arg)
virtual const bool & GetReleaseDataBeforeUpdateFlag ()
virtual void ReleaseDataBeforeUpdateFlagOn ()
virtual void ReleaseDataBeforeUpdateFlagOff ()
virtual void SetNumberOfThreads (ThreadIdType _arg)
virtual const ThreadIdTypeGetNumberOfThreads ()
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
unsigned long AddObserver (const EventObject &event, Command *) const
virtual void DebugOff () const
virtual void DebugOn () const
CommandGetCommand (unsigned long tag)
bool GetDebug () const
MetaDataDictionaryGetMetaDataDictionary (void)
const MetaDataDictionaryGetMetaDataDictionary (void) const
virtual unsigned long GetMTime () const
virtual const TimeStampGetTimeStamp () const
bool HasObserver (const EventObject &event) const
void InvokeEvent (const EventObject &)
void InvokeEvent (const EventObject &) const
virtual void Modified () const
virtual void Register () const
void RemoveAllObservers ()
void RemoveObserver (unsigned long tag)
void SetDebug (bool debugFlag) const
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
virtual void SetReferenceCount (int)
virtual void UnRegister () const
- Public Member Functions inherited from itk::LightObject
virtual void Delete ()
virtual int GetReferenceCount () const
 itkCloneMacro (Self)
void Print (std::ostream &os, Indent indent=0) const

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int ImageDimension = TOutputImage::ImageDimension
- Static Public Attributes inherited from itk::PointSetToImageFilter< TInputPointSet, TOutputImage >
static const unsigned int InputPointSetDimension = InputPointSetType::PointDimension
static const unsigned int OutputImageDimension = TOutputImage::ImageDimension
- Static Public Attributes inherited from itk::ImageSource< TOutputImage >

Protected Member Functions

void AfterThreadedGenerateData ()
void BeforeThreadedGenerateData ()
 BSplineScatteredDataPointSetToImageFilter ()
void GenerateData ()
void PrintSelf (std::ostream &os, Indent indent) const
unsigned int SplitRequestedRegion (unsigned int, unsigned int, RegionType &)
void ThreadedGenerateData (const RegionType &, ThreadIdType)
virtual ~BSplineScatteredDataPointSetToImageFilter ()
- Protected Member Functions inherited from itk::PointSetToImageFilter< TInputPointSet, TOutputImage >
virtual void GenerateOutputInformation ()
 PointSetToImageFilter ()
 ~PointSetToImageFilter ()
- Protected Member Functions inherited from itk::ImageSource< TOutputImage >
virtual void AllocateOutputs ()
 ImageSource ()
virtual unsigned int SplitRequestedRegion (unsigned int i, unsigned int num, OutputImageRegionType &splitRegion)
virtual void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId)
virtual ~ImageSource ()
- Protected Member Functions inherited from itk::ProcessObject
virtual void AddInput (DataObject *input)
virtual void AddOutput (DataObject *output)
bool AddRequiredInputName (const DataObjectIdentifierType &)
virtual void CacheInputReleaseDataFlags ()
virtual void GenerateInputRequestedRegion ()
virtual void GenerateOutputRequestedRegion (DataObject *output)
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredInputs ()
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredOutputs ()
bool IsIndexedName (const DataObjectIdentifierType &) const
bool IsRequiredInputName (const DataObjectIdentifierType &) const
 itkLegacyMacro (virtual void RemoveInput(DataObject *input))
 itkLegacyMacro (virtual void RemoveOutput(DataObject *output))
 itkLegacyMacro (void SetNumberOfInputs(DataObjectPointerArraySizeType num))
 itkLegacyMacro (void SetNumberOfOutputs(DataObjectPointerArraySizeType num))
DataObjectPointerArraySizeType MakeIndexFromName (const DataObjectIdentifierType &) const
DataObjectIdentifierType MakeNameFromIndex (DataObjectPointerArraySizeType) const
 ProcessObject ()
virtual void PropagateResetPipeline ()
virtual void ReleaseInputs ()
virtual void RemoveInput (const DataObjectIdentifierType &key)
virtual void RemoveInput (DataObjectPointerArraySizeType)
virtual void RemoveOutput (const DataObjectIdentifierType &key)
virtual void RemoveOutput (DataObjectPointerArraySizeType idx)
bool RemoveRequiredInputName (const DataObjectIdentifierType &)
virtual void RestoreInputReleaseDataFlags ()
virtual void SetInput (const DataObjectIdentifierType &key, DataObject *input)
virtual void SetNthInput (DataObjectPointerArraySizeType num, DataObject *input)
virtual void SetNthOutput (DataObjectPointerArraySizeType num, DataObject *output)
void SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num)
void SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num)
virtual void SetNumberOfRequiredInputs (DataObjectPointerArraySizeType)
virtual void SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg)
virtual void SetOutput (const DataObjectIdentifierType &key, DataObject *output)
virtual void SetPrimaryInput (DataObject *input)
virtual void SetPrimaryOutput (DataObject *output)
void SetRequiredInputNames (const NameArray &)
virtual void VerifyInputInformation ()
virtual void VerifyPreconditions ()
 ~ProcessObject ()
DataObjectGetInput (const DataObjectIdentifierType &key)
const DataObjectGetInput (const DataObjectIdentifierType &key) const
DataObjectGetInput (DataObjectPointerArraySizeType)
const DataObjectGetInput (DataObjectPointerArraySizeType idx) const
DataObjectGetPrimaryInput ()
const DataObjectGetPrimaryInput () const
DataObjectGetOutput (const DataObjectIdentifierType &key)
const DataObjectGetOutput (const DataObjectIdentifierType &key) const
DataObjectGetOutput (DataObjectPointerArraySizeType idx)
const DataObjectGetOutput (DataObjectPointerArraySizeType idx) const
DataObjectGetPrimaryOutput ()
const DataObjectGetPrimaryOutput () const
virtual void PushBackInput (const DataObject *input)
virtual void PopBackInput ()
virtual void PushFrontInput (const DataObject *input)
virtual void PopFrontInput ()
- Protected Member Functions inherited from itk::Object
 Object ()
bool PrintObservers (std::ostream &os, Indent indent) const
virtual void SetTimeStamp (const TimeStamp &time)
virtual ~Object ()
- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 LightObject ()
virtual void PrintHeader (std::ostream &os, Indent indent) const
virtual void PrintTrailer (std::ostream &os, Indent indent) const
virtual ~LightObject ()

Private Member Functions

 BSplineScatteredDataPointSetToImageFilter (const Self &)
void CollapsePhiLattice (PointDataImageType *, PointDataImageType *, const RealType, const unsigned int)
void GenerateOutputImage ()
IndexType NumberToIndex (const unsigned int, const SizeType)
void operator= (const Self &)
void RefineControlPointLattice ()
void SetPhiLatticeParametricDomainParameters ()
void ThreadedGenerateDataForFitting (const RegionType &, ThreadIdType)
void ThreadedGenerateDataForReconstruction (const RegionType &, ThreadIdType)
void UpdatePointSet ()

Private Attributes

RealType m_BSplineEpsilon
ArrayType m_CloseDimension
unsigned int m_CurrentLevel
ArrayType m_CurrentNumberOfControlPoints
std::vector
< PointDataImagePointer
m_DeltaLatticePerThread
bool m_DoMultilevel
bool m_GenerateOutputImage
PointDataContainerType::Pointer m_InputPointData
bool m_IsFittingComplete
KernelType::Pointer m_Kernel [ImageDimension]
KernelOrder0Type::Pointer m_KernelOrder0
KernelOrder1Type::Pointer m_KernelOrder1
KernelOrder2Type::Pointer m_KernelOrder2
KernelOrder3Type::Pointer m_KernelOrder3
unsigned int m_MaximumNumberOfLevels
ArrayType m_NumberOfControlPoints
ArrayType m_NumberOfLevels
std::vector< RealImagePointerm_OmegaLatticePerThread
PointDataContainerType::Pointer m_OutputPointData
PointDataImageType::Pointer m_PhiLattice
WeightsContainerType::Pointer m_PointWeights
PointDataImageType::Pointer m_PsiLattice
vnl_matrix< RealTypem_RefinedLatticeCoefficients [ImageDimension]
ArrayType m_SplineOrder
bool m_UsePointWeights

Additional Inherited Members

- Protected Attributes inherited from itk::PointSetToImageFilter< TInputPointSet, TOutputImage >
DirectionType m_Direction
ValueType m_InsideValue
PointType m_Origin
ValueType m_OutsideValue
SizeType m_Size
SpacingType m_Spacing

Detailed Description

template<class TInputPointSet, class TOutputImage>
class itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >

Image filter which provides a B-spline output approximation.

Given an n-D image with scattered data, this filter finds a fast approximation to that irregularly spaced data using uniform B-splines. The traditional method of inverting the observation matrix to find a least-squares fit is made obsolete. Therefore, memory issues are not a concern and inverting large matrices is not applicable. In addition, this allows fitting to be multi-threaded. This class generalizes from Lee's original paper to encompass n-D data in m-D parametric space and any feasible B-spline order as well as the option of specifying a confidence value for each point.

In addition to specifying the input point set, one must specify the number of control points. The specified number of control points must be greater than m_SplineOrder. If one wishes to use the multilevel component of this algorithm, one must also specify the number of levels in the hierarchy. If this is desired, the number of control points becomes the number of control points for the coarsest level. The algorithm then increases the number of control points at each level so that the B-spline n-D grid is refined to twice the previous level.

There are two parts to fitting scattered data: the parameterization assignment problem and the fitting problem given a parameterization. This filter only addresses the second problem in that the user must provide a parametric value for each scattered datum. Different parametric assignment schemes result in different B-spline object outputs.

This filter is general in that it accepts n-D scattered data in m-D parametric dimensions. Input to this filter is an m-D point set with a Vector data type of n dimensions. This means that the parametric values are stored in the points container of the point set whereas the scattered data are stored in the points data container of the point set.

Typical B-spline objects include curves, which have a parametric dimension of 1 and a data dimension of 2 or 3 (depending on the space in which the curve resides) and deformation fields which commonly have parametric and data dimensions of 2 or 3 (again depending on the space of the field). As an example, a curve through a set of 2D points has data dimension 2 and parametric dimension 1. The univariate curve could be represented as: <x(u),y(u)> Another example is a 3D deformation of 3D points, which has parametric dimension 3 and data dimension 3 and can be represented as: <dx(u,v,w), dy(u,v,w), dz(u,v,w)>. However, as mentioned before, the code is general such that, if the user wanted, she could model a time varying 3-D displacement field which resides in 4-D space as <dx(u, v, w, t), dy(u, v, w, t), dz(u, v, w, t)>.

The output is an image defining the sampled B-spline parametric domain where each pixel houses the sampled B-spline object value. For a curve fit to 3-D points, the output is a 1-D image where each voxel contains a vector with the approximated (x,y,z) location. The continuous, finite, rectilinear domain (as well as the sampling rate) is specified via the combination of the SetSpacing() and SetSize() functions. For a 2-D deformation on 2-D points, the output is a 2-D image where each voxel contains the approximated (dx, dy) vector.

The parameterization must be specified using SetPoint, where the actual coordinates of the point are set via SetPointData. For example, to compute a spline through the (ordered) 2D points (5,6) and (7,8), you should use:

typedef itk::Vector< float, 2 > DataType;
PointSetType::PointType param0;
param0[0] = 0.0;
DataType p0;
p0[0] = 10.0; p0[1]= 10.0;
pointSet->SetPoint(0, param0);
pointSet->SetPointData( 0, p0 );
PointSetType::PointType param1;
param1[0] = 1.0;
DataType p1;
p1[0] = 80.0; p1[1]= 50.0;
pointSet->SetPoint(1, param1);
pointSet->SetPointData( 1, p1 );
Author:
Nicholas J. Tustison

This code was contributed in the Insight Journal paper: "N-D C^k B-Spline Scattered Data Approximation" by Nicholas J. Tustison, James C. Gee http://hdl.handle.net/1926/140 http://www.insight-journal.org/browse/publication/57

REFERENCE
S. Lee, G. Wolberg, and S. Y. Shin, "Scattered Data Interpolation with Multilevel B-Splines", IEEE Transactions on Visualization and Computer Graphics, 3(3):228-244, 1997.
REFERENCE
N.J. Tustison and J.C. Gee, "Generalized n-D C^k Scattered Data Approximation with Confidence Values", Proceedings of the MIAR conference, August 2006.

Definition at line 129 of file itkBSplineScatteredDataPointSetToImageFilter.h.


Member Typedef Documentation

template<class TInputPointSet , class TOutputImage >
typedef FixedArray<unsigned, itkGetStaticConstMacro( ImageDimension )> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::ArrayType

Image types

Definition at line 172 of file itkBSplineScatteredDataPointSetToImageFilter.h.

template<class TInputPointSet , class TOutputImage >
typedef SmartPointer<const Self> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::ConstPointer
template<class TInputPointSet , class TOutputImage >
typedef TOutputImage itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::ImageType
template<class TInputPointSet , class TOutputImage >
typedef ImageType::IndexType itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::IndexType
template<class TInputPointSet , class TOutputImage >
typedef BSplineKernelFunction<0> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::KernelOrder0Type
template<class TInputPointSet , class TOutputImage >
typedef BSplineKernelFunction<1> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::KernelOrder1Type
template<class TInputPointSet , class TOutputImage >
typedef BSplineKernelFunction<2> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::KernelOrder2Type
template<class TInputPointSet , class TOutputImage >
typedef BSplineKernelFunction<3> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::KernelOrder3Type
template<class TInputPointSet , class TOutputImage >
typedef CoxDeBoorBSplineKernelFunction<3> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::KernelType

Interpolation kernel type (default spline order = 3)

Definition at line 178 of file itkBSplineScatteredDataPointSetToImageFilter.h.

template<class TInputPointSet , class TOutputImage >
typedef ImageType::PixelType itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::PixelType

Image typedef support.

Definition at line 149 of file itkBSplineScatteredDataPointSetToImageFilter.h.

template<class TInputPointSet , class TOutputImage >
typedef PointSetType::PointDataContainer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::PointDataContainerType
template<class TInputPointSet , class TOutputImage >
typedef PointDataImageType::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::PointDataImagePointer

Image types

Definition at line 170 of file itkBSplineScatteredDataPointSetToImageFilter.h.

template<class TInputPointSet , class TOutputImage >
typedef Image<PointDataType, itkGetStaticConstMacro( ImageDimension )> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::PointDataImageType

Image types

Definition at line 166 of file itkBSplineScatteredDataPointSetToImageFilter.h.

template<class TInputPointSet , class TOutputImage >
typedef PointSetType::PixelType itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::PointDataType
template<class TInputPointSet , class TOutputImage >
typedef SmartPointer<Self> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::Pointer
template<class TInputPointSet , class TOutputImage >
typedef PointSetType::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::PointSetPointer
template<class TInputPointSet , class TOutputImage >
typedef TInputPointSet itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::PointSetType
template<class TInputPointSet , class TOutputImage >
typedef PointSetType::PointType itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::PointType
template<class TInputPointSet , class TOutputImage >
typedef RealImageType::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::RealImagePointer

Image types

Definition at line 169 of file itkBSplineScatteredDataPointSetToImageFilter.h.

template<class TInputPointSet , class TOutputImage >
typedef Image<RealType, itkGetStaticConstMacro( ImageDimension )> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::RealImageType

Image types

Definition at line 168 of file itkBSplineScatteredDataPointSetToImageFilter.h.

template<class TInputPointSet , class TOutputImage >
typedef float itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::RealType

Other typedef

Definition at line 161 of file itkBSplineScatteredDataPointSetToImageFilter.h.

template<class TInputPointSet , class TOutputImage >
typedef ImageType::RegionType itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::RegionType
template<class TInputPointSet , class TOutputImage >
typedef BSplineScatteredDataPointSetToImageFilter itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::Self

Standard class typedefs.

Reimplemented from itk::PointSetToImageFilter< TInputPointSet, TOutputImage >.

Definition at line 133 of file itkBSplineScatteredDataPointSetToImageFilter.h.

template<class TInputPointSet , class TOutputImage >
typedef ImageType::SizeType itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::SizeType
template<class TInputPointSet , class TOutputImage >
typedef PointSetToImageFilter<TInputPointSet, TOutputImage> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::Superclass
template<class TInputPointSet , class TOutputImage >
typedef VectorContainer<unsigned, RealType> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::WeightsContainerType

Constructor & Destructor Documentation

template<class TInputPointSet , class TOutputImage >
itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::BSplineScatteredDataPointSetToImageFilter ( )
protected
template<class TInputPointSet , class TOutputImage >
virtual itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::~BSplineScatteredDataPointSetToImageFilter ( )
protectedvirtual
template<class TInputPointSet , class TOutputImage >
itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::BSplineScatteredDataPointSetToImageFilter ( const Self )
private

Member Function Documentation

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::AfterThreadedGenerateData ( void  )
protectedvirtual

If an imaging filter needs to perform processing after all processing threads have completed, the filter can can provide an implementation for AfterThreadedGenerateData(). The execution flow in the default GenerateData() method will be: 1) Allocate the output buffer 2) Call BeforeThreadedGenerateData() 3) Spawn threads, calling ThreadedGenerateData() in each thread. 4) Call AfterThreadedGenerateData() Note that this flow of control is only available if a filter provides a ThreadedGenerateData() method and NOT a GenerateData() method.

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::BeforeThreadedGenerateData ( void  )
protectedvirtual

If an imaging filter needs to perform processing after the buffer has been allocated but before threads are spawned, the filter can can provide an implementation for BeforeThreadedGenerateData(). The execution flow in the default GenerateData() method will be: 1) Allocate the output buffer 2) Call BeforeThreadedGenerateData() 3) Spawn threads, calling ThreadedGenerateData() in each thread. 4) Call AfterThreadedGenerateData() Note that this flow of control is only available if a filter provides a ThreadedGenerateData() method and NOT a GenerateData() method.

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::CollapsePhiLattice ( PointDataImageType ,
PointDataImageType ,
const RealType  ,
const unsigned  int 
)
private

Sub-function used by GenerateOutputImageFast() to generate the sampled B-spline object quickly.

template<class TInputPointSet , class TOutputImage >
virtual::itk::LightObject::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::CreateAnother ( void  ) const
virtual

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::PointSetToImageFilter< TInputPointSet, TOutputImage >.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::GenerateData ( )
protectedvirtual

A version of GenerateData() specific for image processing filters. This implementation will split the processing across multiple threads. The buffer is allocated by this method. Then the BeforeThreadedGenerateData() method is called (if provided). Then, a series of threads are spawned each calling ThreadedGenerateData(). After all the threads have completed processing, the AfterThreadedGenerateData() method is called (if provided). If an image processing filter cannot be threaded, the filter should provide an implementation of GenerateData(). That implementation is responsible for allocating the output buffer. If a filter an be threaded, it should NOT provide a GenerateData() method but should provide a ThreadedGenerateData() instead.

See also:
ThreadedGenerateData()

Reimplemented from itk::PointSetToImageFilter< TInputPointSet, TOutputImage >.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::GenerateOutputImage ( )
private

This function is not used as it requires an evaluation of all (SplineOrder+1)^ImageDimensions B-spline weights for each evaluation.

template<class TInputPointSet , class TOutputImage >
virtual void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::GenerateOutputImageOff ( )
virtual
template<class TInputPointSet , class TOutputImage >
virtual void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::GenerateOutputImageOn ( )
virtual

The result of the fitting process is an n-D grid of control points which describe the continuous B-spline object. This boolean value determines whether or not this sampled B-spline object is constructed.

template<class TInputPointSet , class TOutputImage >
virtual const ArrayType& itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::GetCloseDimension ( )
virtual

This array of 0/1 values defines whether a particular dimension of the parametric space is to be considered periodic or not. For example, if you are using interpolating along a 1D closed curve, the array type will have size 1, and you should set the first element of this array to the value "1". In the case that you were interpolating in a planar surface with cylindrical topology, the array type will have two components, and you should set to "1" the component that goes around the cylinder, and set to "0" the component that goes from the top of the cylinder to the bottom. This will indicate the periodity of that parameter to the filter. Internally, in order to make periodic the domain of the parameter, the filter will reuse some of the points at the beginning of the domain as if they were also located at the end of the domain. The number of points to be reused will depend on the spline order. As a user, you don't need to replicate the points, the filter will do this for you.

template<class TInputPointSet , class TOutputImage >
virtual const ArrayType& itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::GetCurrentNumberOfControlPoints ( )
virtual

Get the number of current control points for each parametric dimension at the current fitting level. The B-spline mesh size is equal to the number of control points minus the spline order. Default = 4 in each dimension.

template<class TInputPointSet , class TOutputImage >
virtual const bool& itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::GetGenerateOutputImage ( )
virtual

The result of the fitting process is an n-D grid of control points which describe the continuous B-spline object. This boolean value determines whether or not this sampled B-spline object is constructed.

template<class TInputPointSet , class TOutputImage >
virtual const ArrayType& itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::GetNumberOfControlPoints ( )
virtual

Set the number of control points for each parametric dimension at the initial fitting level. The B-spline mesh size is equal to the number of control points minus the spline order. Default = 4 in each dimension.

template<class TInputPointSet , class TOutputImage >
virtual const ArrayType& itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::GetNumberOfLevels ( )
virtual

Get the number of fitting levels for all parametric dimensions. Starting with the mesh size implied by setting the number of control points, the mesh size is doubled at each fitting level. Default = 1 in all parametric dimensions.

template<class TInputPointSet , class TOutputImage >
virtual PointDataImagePointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::GetPhiLattice ( ) const
virtual

Get the control point lattice produced by the fitting process.

template<class TInputPointSet , class TOutputImage >
virtual const ArrayType& itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::GetSplineOrder ( )
virtual

Get the spline order for all parametric dimensions. The spline order determines the continuity between B-spline elements and the degree of polynomial used to construct the B-spline elements. Default = 3.

template<class TInputPointSet , class TOutputImage >
static Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::New ( )
static

Method for creation through the object factory.

Reimplemented from itk::PointSetToImageFilter< TInputPointSet, TOutputImage >.

template<class TInputPointSet , class TOutputImage >
IndexType itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::NumberToIndex ( const unsigned  int,
const SizeType   
)
private

Convert number to index given a size of image. Used to index the local control point neighborhoods.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::operator= ( const Self )
private
template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::PointSetToImageFilter< TInputPointSet, TOutputImage >.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::RefineControlPointLattice ( )
private

Function used to propagate the fitting solution at one fitting level to the next level with the mesh resolution doubled.

template<class TInputPointSet , class TOutputImage >
virtual void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::SetCloseDimension ( ArrayType  _arg)
virtual

This array of 0/1 values defines whether a particular dimension of the parametric space is to be considered periodic or not. For example, if you are using interpolating along a 1D closed curve, the array type will have size 1, and you should set the first element of this array to the value "1". In the case that you were interpolating in a planar surface with cylindrical topology, the array type will have two components, and you should set to "1" the component that goes around the cylinder, and set to "0" the component that goes from the top of the cylinder to the bottom. This will indicate the periodity of that parameter to the filter. Internally, in order to make periodic the domain of the parameter, the filter will reuse some of the points at the beginning of the domain as if they were also located at the end of the domain. The number of points to be reused will depend on the spline order. As a user, you don't need to replicate the points, the filter will do this for you.

template<class TInputPointSet , class TOutputImage >
virtual void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::SetGenerateOutputImage ( bool  _arg)
virtual

The result of the fitting process is an n-D grid of control points which describe the continuous B-spline object. This boolean value determines whether or not this sampled B-spline object is constructed.

template<class TInputPointSet , class TOutputImage >
virtual void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::SetNumberOfControlPoints ( ArrayType  _arg)
virtual

Set the number of control points for each parametric dimension at the initial fitting level. The B-spline mesh size is equal to the number of control points minus the spline order. Default = 4 in each dimension.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::SetNumberOfLevels ( unsigned  int)

Set the number of fitting levels assuming the number of fitting levels is the same for each parametric dimension. Starting with the mesh size implied by setting the number of control points, the mesh size is doubled at each fitting level. Default = 1 in all parametric dimensions.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::SetNumberOfLevels ( const ArrayType )

Set the number of fitting levels in each parametric dimension separately. Starting with the mesh size implied by setting the number of control points, the mesh size is doubled at each fitting level. Default = 1 in all parametric dimensions.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::SetPhiLatticeParametricDomainParameters ( )
private

Set the grid parametric domain parameters such as the origin, size, spacing, and direction.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::SetPointWeights ( WeightsContainerType weights)

A weighted fitting is possible where each input point is assigned a relative weighting.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::SetSplineOrder ( unsigned  int)

Set the spline order assuming it is the same in all parametric dimensions. The spline order determines the continuity between B-spline elements and the degree of polynomial used to construct the B-spline elements. Default = 3.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::SetSplineOrder ( const ArrayType )

Set the spline order for each parametric dimension separately. The spline order determines the continuity between B-spline elements and the degree of polynomial used to construct the B-spline elements. Default = 3.

template<class TInputPointSet , class TOutputImage >
unsigned int itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::SplitRequestedRegion ( unsigned  int,
unsigned  int,
RegionType  
)
protected
template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::ThreadedGenerateData ( const RegionType ,
ThreadIdType   
)
protected
template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::ThreadedGenerateDataForFitting ( const RegionType ,
ThreadIdType   
)
private

Function used to generate the sampled B-spline object quickly.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::ThreadedGenerateDataForReconstruction ( const RegionType ,
ThreadIdType   
)
private

Function used to generate the sampled B-spline object quickly.

template<class TInputPointSet , class TOutputImage >
void itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::UpdatePointSet ( )
private

Determine the residuals after fitting to one level.


Member Data Documentation

template<class TInputPointSet , class TOutputImage >
const unsigned int itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::ImageDimension = TOutputImage::ImageDimension
static

Extract dimension from the output image.

Definition at line 143 of file itkBSplineScatteredDataPointSetToImageFilter.h.

template<class TInputPointSet , class TOutputImage >
RealType itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_BSplineEpsilon
private
template<class TInputPointSet , class TOutputImage >
ArrayType itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_CloseDimension
private
template<class TInputPointSet , class TOutputImage >
unsigned int itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_CurrentLevel
private
template<class TInputPointSet , class TOutputImage >
ArrayType itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_CurrentNumberOfControlPoints
private
template<class TInputPointSet , class TOutputImage >
std::vector<PointDataImagePointer> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_DeltaLatticePerThread
private
template<class TInputPointSet , class TOutputImage >
bool itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_DoMultilevel
private
template<class TInputPointSet , class TOutputImage >
bool itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_GenerateOutputImage
private
template<class TInputPointSet , class TOutputImage >
PointDataContainerType::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_InputPointData
private
template<class TInputPointSet , class TOutputImage >
bool itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_IsFittingComplete
private
template<class TInputPointSet , class TOutputImage >
KernelType::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_Kernel[ImageDimension]
private
template<class TInputPointSet , class TOutputImage >
KernelOrder0Type::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_KernelOrder0
private
template<class TInputPointSet , class TOutputImage >
KernelOrder1Type::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_KernelOrder1
private
template<class TInputPointSet , class TOutputImage >
KernelOrder2Type::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_KernelOrder2
private
template<class TInputPointSet , class TOutputImage >
KernelOrder3Type::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_KernelOrder3
private
template<class TInputPointSet , class TOutputImage >
unsigned int itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_MaximumNumberOfLevels
private
template<class TInputPointSet , class TOutputImage >
ArrayType itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_NumberOfControlPoints
private
template<class TInputPointSet , class TOutputImage >
ArrayType itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_NumberOfLevels
private
template<class TInputPointSet , class TOutputImage >
std::vector<RealImagePointer> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_OmegaLatticePerThread
private
template<class TInputPointSet , class TOutputImage >
PointDataContainerType::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_OutputPointData
private
template<class TInputPointSet , class TOutputImage >
PointDataImageType::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_PhiLattice
private
template<class TInputPointSet , class TOutputImage >
WeightsContainerType::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_PointWeights
private
template<class TInputPointSet , class TOutputImage >
PointDataImageType::Pointer itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_PsiLattice
private
template<class TInputPointSet , class TOutputImage >
vnl_matrix<RealType> itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_RefinedLatticeCoefficients[ImageDimension]
private
template<class TInputPointSet , class TOutputImage >
ArrayType itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_SplineOrder
private
template<class TInputPointSet , class TOutputImage >
bool itk::BSplineScatteredDataPointSetToImageFilter< TInputPointSet, TOutputImage >::m_UsePointWeights
private

The documentation for this class was generated from the following file: