#include <itkBSplineControlPointImageFilter.h>
Process a given a B-spline grid of control points.
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 https://doi.org/10.54294/0d55to
Definition at line 59 of file itkBSplineControlPointImageFilter.h.
Public Member Functions | |
virtual::itk::LightObject::Pointer | CreateAnother () const |
virtual DirectionType | GetDirection () const |
const char * | GetNameOfClass () const override |
virtual const ArrayType & | GetSplineOrder () const |
ControlPointLatticeType::Pointer | RefineControlPointLattice (ArrayType) |
virtual void | SetDirection (DirectionType _arg) |
void | SetSplineOrder (ArrayType) |
void | SetSplineOrder (unsigned int) |
virtual void | SetCloseDimension (ArrayType _arg) |
virtual const ArrayType & | GetCloseDimension () const |
virtual void | SetSpacing (SpacingType _arg) |
virtual SpacingType | GetSpacing () const |
virtual void | SetOrigin (OriginType _arg) |
virtual OriginType | GetOrigin () const |
virtual void | SetSize (SizeType _arg) |
virtual SizeType | GetSize () const |
![]() | |
const InputImageType * | GetInput () const |
const InputImageType * | GetInput () const |
const InputImageType * | GetInput (unsigned int idx) const |
const InputImageType * | GetInput (unsigned int idx) const |
const char * | GetNameOfClass () const override |
const char * | GetNameOfClass () const override |
void | PopBackInput () override |
void | PopBackInput () override |
void | PopFrontInput () override |
void | PopFrontInput () override |
virtual void | PushBackInput (const InputImageType *input) |
virtual void | PushBackInput (const InputImageType *input) |
virtual void | PushFrontInput (const InputImageType *input) |
virtual void | PushFrontInput (const InputImageType *input) |
virtual void | SetInput (const InputImageType *input) |
virtual void | SetInput (const InputImageType *input) |
virtual void | SetInput (unsigned int, const TInputImage *image) |
virtual void | SetInput (unsigned int, const TInputImage *image) |
virtual void | SetCoordinateTolerance (double _arg) |
virtual double | GetCoordinateTolerance () const |
virtual void | SetCoordinateTolerance (double _arg) |
virtual double | GetCoordinateTolerance () const |
virtual void | SetDirectionTolerance (double _arg) |
virtual double | GetDirectionTolerance () const |
virtual void | SetDirectionTolerance (double _arg) |
virtual double | GetDirectionTolerance () const |
![]() | |
OutputImageType * | GetOutput (unsigned int idx) |
OutputImageType * | GetOutput () |
const OutputImageType * | GetOutput () const |
virtual void | GraftOutput (DataObject *graft) |
virtual void | GraftOutput (const DataObjectIdentifierType &key, DataObject *graft) |
virtual void | GraftNthOutput (unsigned int idx, DataObject *graft) |
ProcessObject::DataObjectPointer | MakeOutput (ProcessObject::DataObjectPointerArraySizeType idx) override |
ProcessObject::DataObjectPointer | MakeOutput (const ProcessObject::DataObjectIdentifierType &) override |
![]() | |
virtual void | AbortGenerateDataOff () |
virtual void | AbortGenerateDataOn () |
virtual void | EnlargeOutputRequestedRegion (DataObject *output) |
virtual const bool & | GetAbortGenerateData () const |
DataObjectPointerArray | GetIndexedInputs () |
DataObjectPointerArray | GetIndexedOutputs () |
NameArray | GetInputNames () const |
DataObjectPointerArray | GetInputs () |
MultiThreaderType * | GetMultiThreader () const |
const char * | GetNameOfClass () const override |
DataObjectPointerArraySizeType | GetNumberOfIndexedInputs () const |
DataObjectPointerArraySizeType | GetNumberOfIndexedOutputs () const |
DataObjectPointerArraySizeType | GetNumberOfInputs () const |
DataObjectPointerArraySizeType | GetNumberOfOutputs () const |
virtual DataObjectPointerArraySizeType | GetNumberOfValidRequiredInputs () const |
NameArray | GetOutputNames () const |
DataObjectPointerArray | GetOutputs () |
virtual float | GetProgress () const |
NameArray | GetRequiredInputNames () const |
bool | HasInput (const DataObjectIdentifierType &key) const |
bool | HasOutput (const DataObjectIdentifierType &key) const |
void | IncrementProgress (float increment) |
virtual void | PrepareOutputs () |
virtual void | PropagateRequestedRegion (DataObject *output) |
virtual void | ResetPipeline () |
virtual void | SetAbortGenerateData (bool _arg) |
void | SetMultiThreader (MultiThreaderType *threader) |
virtual void | Update () |
virtual void | UpdateLargestPossibleRegion () |
virtual void | UpdateOutputData (DataObject *output) |
virtual void | UpdateOutputInformation () |
void | UpdateProgress (float progress) |
virtual void | SetReleaseDataFlag (bool val) |
virtual bool | GetReleaseDataFlag () const |
void | ReleaseDataFlagOn () |
void | ReleaseDataFlagOff () |
virtual void | SetReleaseDataBeforeUpdateFlag (bool _arg) |
virtual const bool & | GetReleaseDataBeforeUpdateFlag () const |
virtual void | ReleaseDataBeforeUpdateFlagOn () |
virtual void | ReleaseDataBeforeUpdateFlagOff () |
virtual void | SetNumberOfWorkUnits (ThreadIdType _arg) |
virtual const ThreadIdType & | GetNumberOfWorkUnits () const |
![]() | |
unsigned long | AddObserver (const EventObject &event, Command *cmd) const |
unsigned long | AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const |
LightObject::Pointer | CreateAnother () const override |
virtual void | DebugOff () const |
virtual void | DebugOn () const |
Command * | GetCommand (unsigned long tag) |
bool | GetDebug () const |
MetaDataDictionary & | GetMetaDataDictionary () |
const MetaDataDictionary & | GetMetaDataDictionary () const |
virtual ModifiedTimeType | GetMTime () const |
virtual const TimeStamp & | GetTimeStamp () const |
bool | HasObserver (const EventObject &event) const |
void | InvokeEvent (const EventObject &) |
void | InvokeEvent (const EventObject &) const |
virtual void | Modified () const |
void | Register () const override |
void | RemoveAllObservers () |
void | RemoveObserver (unsigned long tag) const |
void | SetDebug (bool debugFlag) const |
void | SetReferenceCount (int) override |
void | UnRegister () const noexcept override |
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
virtual void | SetObjectName (std::string _arg) |
virtual const std::string & | GetObjectName () const |
![]() | |
Pointer | Clone () const |
virtual void | Delete () |
virtual int | GetReferenceCount () const |
void | Print (std::ostream &os, Indent indent=0) const |
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static double | GetGlobalDefaultCoordinateTolerance () |
static double | GetGlobalDefaultCoordinateTolerance () |
static double | GetGlobalDefaultDirectionTolerance () |
static double | GetGlobalDefaultDirectionTolerance () |
static void | SetGlobalDefaultCoordinateTolerance (double) |
static void | SetGlobalDefaultCoordinateTolerance (double) |
static void | SetGlobalDefaultDirectionTolerance (double) |
static void | SetGlobalDefaultDirectionTolerance (double) |
![]() | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
![]() | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = TInputImage::ImageDimension |
![]() | |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | OutputImageDimension |
static constexpr unsigned int | OutputImageDimension |
![]() | |
static constexpr unsigned int | OutputImageDimension |
Private Member Functions | |
void | BeforeThreadedGenerateData () override |
void | CollapsePhiLattice (PointDataImageType *, PointDataImageType *, const RealType, const unsigned int) |
RealImageType::IndexType | NumberToIndex (unsigned int number, typename RealImageType::SizeType size) |
void | SetNumberOfLevels (ArrayType) |
unsigned int | SplitRequestedRegion (unsigned int, unsigned int, OutputImageRegionType &) override |
Private Attributes | |
RealType | m_BSplineEpsilon { static_cast<RealType>(1e-3) } |
ArrayType | m_CloseDimension {} |
DirectionType | m_Direction {} |
bool | m_DoMultilevel { false } |
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 { 1 } |
ArrayType | m_NumberOfControlPoints {} |
ArrayType | m_NumberOfLevels {} |
OriginType | m_Origin {} |
vnl_matrix< RealType > | m_RefinedLatticeCoefficients [ImageDimension] {} |
SizeType | m_Size {} |
SpacingType | m_Spacing {} |
ArrayType | m_SplineOrder {} |
Additional Inherited Members | |
![]() | |
using | InputToOutputRegionCopierType |
using | OutputToInputRegionCopierType |
![]() | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
![]() | |
template<typename TSourceObject> | |
static void | MakeRequiredOutputs (TSourceObject &sourceObject, const DataObjectPointerArraySizeType numberOfRequiredOutputs) |
static constexpr float | progressFixedToFloat (uint32_t fixed) |
static uint32_t | progressFloatToFixed (float f) |
![]() | |
bool | m_DynamicMultiThreading |
![]() | |
TimeStamp | m_OutputInformationMTime {} |
bool | m_Updating {} |
![]() | |
std::atomic< int > | m_ReferenceCount {} |
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::ArrayType = FixedArray<unsigned int, Self::ImageDimension> |
Definition at line 98 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::ConstPointer = SmartPointer<const Self> |
Definition at line 67 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::ControlPointLatticeType = TInputImage |
Definition at line 78 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::DirectionType = typename OutputImageType::DirectionType |
Definition at line 91 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::IndexType = typename OutputImageType::IndexType |
Definition at line 84 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::KernelOrder0Type = BSplineKernelFunction<0> |
Definition at line 110 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::KernelOrder1Type = BSplineKernelFunction<1> |
Definition at line 111 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::KernelOrder2Type = BSplineKernelFunction<2> |
Definition at line 112 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::KernelOrder3Type = BSplineKernelFunction<3> |
Definition at line 113 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::KernelType = CoxDeBoorBSplineKernelFunction<3> |
Interpolation kernel type (default spline order = 3)
Definition at line 109 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::OriginType = typename OutputImageType::PointType |
Definition at line 89 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::OutputImageRegionType = typename OutputImageType::RegionType |
Definition at line 86 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::OutputImageType = TOutputImage |
Definition at line 79 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::PixelType = typename OutputImageType::PixelType |
Image type alias support
Definition at line 82 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::PointDataContainerType = typename PointSetType::PointDataContainer |
Definition at line 104 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::PointDataImagePointer = typename PointDataImageType::Pointer |
Definition at line 106 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::PointDataImageType = Image<PointDataType, Self::ImageDimension> |
Definition at line 105 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::PointDataType = typename PointSetType::PixelType |
Definition at line 103 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::Pointer = SmartPointer<Self> |
Definition at line 66 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::PointSetType = PointSet<PixelType, Self::ImageDimension> |
PointSet type alias support
Definition at line 102 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::PointType = typename OutputImageType::PointType |
Definition at line 85 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::RealArrayType = FixedArray<RealType, Self::ImageDimension> |
Definition at line 99 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::RealImagePointer = typename RealImageType::Pointer |
Definition at line 96 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::RealImageType = Image<RealType, Self::ImageDimension> |
Definition at line 95 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::RealType = float |
Other type alias
Definition at line 94 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::RegionType = typename OutputImageType::RegionType |
Definition at line 83 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::Self = BSplineControlPointImageFilter |
Definition at line 64 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::SizeType = typename OutputImageType::SizeType |
Definition at line 90 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::SpacingType = typename OutputImageType::SpacingType |
Definition at line 88 of file itkBSplineControlPointImageFilter.h.
using itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::Superclass = ImageToImageFilter<TInputImage, TOutputImage> |
Definition at line 65 of file itkBSplineControlPointImageFilter.h.
|
protected |
Referenced by GetNameOfClass().
|
overrideprotecteddefault |
|
overrideprivatevirtual |
Before splitting, we need to allocate memory for the output sampled B-spline object based on the multi-threading functionality
Reimplemented from itk::ImageSource< TInputImage >.
|
private |
Sub-function used by GenerateOutputImageFast() to generate the sampled B-spline object quickly.
|
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::LightObject.
|
overrideprotectedvirtual |
Multi-threaded function which generates the output sampled B-spline object.
Reimplemented from itk::ImageSource< TInputImage >.
|
virtual |
Set/Get the boolean array indicating the periodicity of the B-spline object. 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 periodicity 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.
|
virtual |
Get the sampled B-spline object direction.
|
overridevirtual |
Reimplemented from itk::LightObject.
References BSplineControlPointImageFilter().
|
virtual |
Set/Get the parametric origin of the B-spline object domain.
|
virtual |
Set/Get the parametric size of the B-spline object domain.
|
virtual |
Set/Get the parametric spacing of the B-spline object domain.
|
virtual |
Get the spline order array of the B-spline object. Default = 3.
|
static |
Method for creation through the object factory.
|
inlineprivate |
Definition at line 266 of file itkBSplineControlPointImageFilter.h.
References ImageDimension.
|
overrideprotectedvirtual |
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::LightObject.
ControlPointLatticeType::Pointer itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::RefineControlPointLattice | ( | ArrayType | ) |
Generate a refined control point lattice from the input control point lattice such that the resolution is doubled for each level. This is further described in the references. Note that if one sets the number of refinement levels to all 1's, the control point lattice is not increased in resolution. Doubling the resolution starts at 2 refinement levels.
|
virtual |
Set/Get the boolean array indicating the periodicity of the B-spline object. 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 periodicity 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.
|
virtual |
Set the sampled object direction. Note that this is not used in any of the calculations in this class. The only reason why it is included is due to the fact that we use the image class to represent the B-spline parametric domain (due to the maturity of the image class and the wealth of helper functions associated with it). This is where the incongruence between the B-spline parametric domain and the concept of an image is most obvious. An ITK image is a representation of a physical object thus it also exists in physical space which includes orientation. However, it can be argued that the parametric domain, per se, does not exist in physical space and it is only a parametric mapping which allows us to go from the parametric space to the physical space. Therefore, the direction is not used.
|
private |
Private function to handle the internal ivars.
|
virtual |
Set/Get the parametric origin of the B-spline object domain.
|
virtual |
Set/Get the parametric size of the B-spline object domain.
|
virtual |
Set/Get the parametric spacing of the B-spline object domain.
void itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::SetSplineOrder | ( | ArrayType | ) |
Set the spline order array where each element of the array corresponds to a single parametric dimension of the B-spline object. Default = 3.
void itk::BSplineControlPointImageFilter< TInputImage, TOutputImage >::SetSplineOrder | ( | unsigned int | ) |
Set the spline order of the B-spline object for all parametric dimensions. Default = 3.
|
overrideprivatevirtual |
Based on the way CollapsePhiLattice() is written, we want to split on the the last dimension.
Reimplemented from itk::ImageSource< TInputImage >.
|
staticconstexpr |
Extract dimension from input image.
Definition at line 76 of file itkBSplineControlPointImageFilter.h.
Referenced by NumberToIndex().
|
private |
Definition at line 263 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 251 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 246 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 248 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 257 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 258 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 259 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 260 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 261 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 249 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 250 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 253 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 245 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 255 of file itkBSplineControlPointImageFilter.h.
|
private |
Parameters for the output image.
Definition at line 243 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 244 of file itkBSplineControlPointImageFilter.h.
|
private |
Definition at line 252 of file itkBSplineControlPointImageFilter.h.