ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkWarpVectorImageFilter.h>
Warps an image using an input displacement field.
WarpVectorImageFilter warps an existing image with respect to a given displacement field. The input image is expected to have vector-like pixel types.
A displacement field is represented as a image whose pixel type is some vector type with at least N elements, where N is the dimension of the input image. The vector type must support element access via operator [].
The output image is produced by inverse mapping: the output pixels are mapped back onto the input image. This scheme avoids the creation of any holes and overlaps in the output image.
Each vector in the displacement field represent the distance between a geometric point in the input space and a point in the output space such that:
Typically the mapped position does not correspond to an integer pixel position in the input image. Interpolation via an image function is used to compute values at non-integer positions. The default interpolation typed used is the LinearInterpolateImageFunction. The user can specify a particular interpolation function via SetInterpolator(). Note that the input interpolator must derive from base class InterpolateImageFunction.
Position mapped to outside of the input image buffer are assigned a edge padding value.
The LargetPossibleRegion for the output is inherited from the input displacement field. The output image spacing, origin and direction may be set via SetOutputSpacing, SetOutputOrigin and SetOutputDirection. The default are respectively a vector of 1's, a vector of 0's and an identity matrix.
This class is templated over the type of the input image, the type of the output image and the type of the displacement field.
The input image is set via SetInput. The input displacement field is set via SetDisplacementField.
This filter is implemented as a multithreaded filter.
Definition at line 92 of file itkWarpVectorImageFilter.h.
Public Types | |
using | ConstPointer = SmartPointer< const Self > |
using | CoordRepType = double |
using | DefaultInterpolatorType = VectorLinearInterpolateImageFunction< InputImageType, CoordRepType > |
using | DirectionType = typename TOutputImage::DirectionType |
using | DisplacementFieldPointer = typename DisplacementFieldType::Pointer |
using | DisplacementFieldType = TDisplacementField |
using | DisplacementType = typename DisplacementFieldType::PixelType |
using | IndexType = typename OutputImageType::IndexType |
using | InputImageConstPointer = typename Superclass::InputImageConstPointer |
using | InputImagePointer = typename Superclass::InputImagePointer |
using | InputImageType = typename Superclass::InputImageType |
using | InterpolatorPointer = typename InterpolatorType::Pointer |
using | InterpolatorType = VectorInterpolateImageFunction< InputImageType, CoordRepType > |
using | OutputImagePointer = typename Superclass::OutputImagePointer |
using | OutputImageRegionType = typename TOutputImage::RegionType |
using | OutputImageType = typename Superclass::OutputImageType |
using | PixelType = typename OutputImageType::PixelType |
using | Pointer = SmartPointer< Self > |
using | PointType = Point< CoordRepType, Self::ImageDimension > |
using | Self = WarpVectorImageFilter |
using | SizeType = typename OutputImageType::SizeType |
using | SpacingType = typename OutputImageType::SpacingType |
using | Superclass = ImageToImageFilter< TInputImage, TOutputImage > |
using | ValueType = typename OutputImageType::PixelType::ValueType |
Public Types inherited from itk::ImageToImageFilter< TInputImage, TOutputImage > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputImageConstPointer = typename InputImageType::ConstPointer |
using | InputImagePixelType = typename InputImageType::PixelType |
using | InputImagePointer = typename InputImageType::Pointer |
using | InputImageRegionType = typename InputImageType::RegionType |
using | InputImageType = TInputImage |
using | OutputImagePixelType = typename Superclass::OutputImagePixelType |
using | OutputImageRegionType = typename Superclass::OutputImageRegionType |
using | Pointer = SmartPointer< Self > |
using | Self = ImageToImageFilter |
using | Superclass = ImageSource< TOutputImage > |
Public Types inherited from itk::ImageSource< TOutputImage > | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = Superclass::DataObjectIdentifierType |
using | DataObjectPointer = DataObject::Pointer |
using | DataObjectPointerArraySizeType = Superclass::DataObjectPointerArraySizeType |
using | OutputImagePixelType = typename OutputImageType::PixelType |
using | OutputImagePointer = typename OutputImageType::Pointer |
using | OutputImageRegionType = typename OutputImageType::RegionType |
using | OutputImageType = TOutputImage |
using | Pointer = SmartPointer< Self > |
using | Self = ImageSource |
using | Superclass = ProcessObject |
Public Types inherited from itk::ProcessObject | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = DataObject::DataObjectIdentifierType |
using | DataObjectPointer = DataObject::Pointer |
using | DataObjectPointerArray = std::vector< DataObjectPointer > |
using | DataObjectPointerArraySizeType = DataObjectPointerArray::size_type |
using | MultiThreaderType = MultiThreaderBase |
using | NameArray = std::vector< DataObjectIdentifierType > |
using | Pointer = SmartPointer< Self > |
using | Self = ProcessObject |
using | Superclass = Object |
Public Types inherited from itk::Object | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = Object |
using | Superclass = LightObject |
Public Types inherited from itk::LightObject | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = LightObject |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool flag) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = TOutputImage::ImageDimension |
static constexpr unsigned int | PixelDimension = PixelType::Dimension |
Static Public Attributes inherited from itk::ImageToImageFilter< TInputImage, TOutputImage > | |
static constexpr unsigned int | InputImageDimension = TInputImage::ImageDimension |
static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Static Public Attributes inherited from itk::ImageSource< TOutputImage > | |
static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Private Attributes | |
PixelType | m_EdgePaddingValue |
InterpolatorPointer | m_Interpolator |
DirectionType | m_OutputDirection |
PointType | m_OutputOrigin |
SpacingType | m_OutputSpacing |
Additional Inherited Members | |
Protected Types inherited from itk::ImageToImageFilter< TInputImage, TOutputImage > | |
using | InputToOutputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::OutputImageDimension, Self::InputImageDimension > |
using | OutputToInputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::InputImageDimension, Self::OutputImageDimension > |
Static Protected Member Functions inherited from itk::ImageSource< TOutputImage > | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
Protected Attributes inherited from itk::ImageSource< TOutputImage > | |
bool | m_DynamicMultiThreading |
Protected Attributes inherited from itk::ProcessObject | |
TimeStamp | m_OutputInformationMTime |
bool | m_Updating |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount |
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::ConstPointer = SmartPointer< const Self > |
Definition at line 102 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::CoordRepType = double |
Interpolator type alias support
Definition at line 138 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::DefaultInterpolatorType = VectorLinearInterpolateImageFunction< InputImageType, CoordRepType > |
Definition at line 142 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::DirectionType = typename TOutputImage::DirectionType |
Type for representing the direction of the output image
Definition at line 148 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::DisplacementFieldPointer = typename DisplacementFieldType::Pointer |
Definition at line 134 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::DisplacementFieldType = TDisplacementField |
Displacement field type alias support
Definition at line 133 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::DisplacementType = typename DisplacementFieldType::PixelType |
Definition at line 135 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::IndexType = typename OutputImageType::IndexType |
Definition at line 120 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::InputImageConstPointer = typename Superclass::InputImageConstPointer |
Definition at line 118 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::InputImagePointer = typename Superclass::InputImagePointer |
Definition at line 115 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::InputImageType = typename Superclass::InputImageType |
Inherit some types from the superclass.
Definition at line 114 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::InterpolatorPointer = typename InterpolatorType::Pointer |
Definition at line 140 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::InterpolatorType = VectorInterpolateImageFunction< InputImageType, CoordRepType > |
Definition at line 139 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::OutputImagePointer = typename Superclass::OutputImagePointer |
Definition at line 117 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::OutputImageRegionType = typename TOutputImage::RegionType |
Typedef to describe the output image region type.
Definition at line 111 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::OutputImageType = typename Superclass::OutputImageType |
Definition at line 116 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::PixelType = typename OutputImageType::PixelType |
Definition at line 122 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::Pointer = SmartPointer< Self > |
Definition at line 101 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::PointType = Point< CoordRepType, Self::ImageDimension > |
Point type
Definition at line 145 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::Self = WarpVectorImageFilter |
Standard class type aliases.
Definition at line 99 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SizeType = typename OutputImageType::SizeType |
Definition at line 121 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SpacingType = typename OutputImageType::SpacingType |
Definition at line 123 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::Superclass = ImageToImageFilter< TInputImage, TOutputImage > |
Definition at line 100 of file itkWarpVectorImageFilter.h.
using itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::ValueType = typename OutputImageType::PixelType::ValueType |
Definition at line 124 of file itkWarpVectorImageFilter.h.
|
protected |
|
overrideprotecteddefault |
|
overridevirtual |
This method is used to set the state of the filter before multi-threading.
Reimplemented from itk::ImageSource< TOutputImage >.
|
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::Object.
|
overrideprotectedvirtual |
WarpVectorImageFilter is implemented as a multi-threaded filter. As such, it needs to provide and implementation for DynamicThreadedGenerateData().
Reimplemented from itk::ImageSource< TOutputImage >.
|
overridevirtual |
It is difficult to compute in advance the input image region required to compute the requested output region. Thus the safest thing to do is to request for the whole input image.
For the displacement field, the input requested region set to be the same as that of the output requested region.
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
|
overridevirtual |
WarpVectorImageFilter produces an image which is a different size than its input image. As such, it needs to provide an implementation for GenerateOutputInformation() which set the output information according the OutputSpacing, OutputOrigin and the displacement field's LargestPossibleRegion.
Reimplemented from itk::ProcessObject.
DisplacementFieldType* itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::GetDisplacementField | ( | ) |
Get a pointer the displacement field.
|
virtual |
Get the edge padding value
|
virtual |
Get/Set the interpolator function.
|
virtual |
Get/Set the interpolator function.
|
virtual |
Run-time type information (and related methods)
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
|
virtual |
Set/Get the direction (orientation) of the output image
|
virtual |
Get the output image origin.
|
virtual |
Get the output image spacing.
|
static |
Method for creation through the object factory.
|
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::ImageToImageFilter< TInputImage, TOutputImage >.
void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SetDisplacementField | ( | const DisplacementFieldType * | field | ) |
Set the displacement field.
void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SetDisplacementField | ( | DisplacementFieldType * | field | ) |
Set the displacement field (non const for backward compatibility).
|
virtual |
Set the edge padding value
|
virtual |
Get/Set the interpolator function.
|
virtual |
Set/Get the direction (orientation) of the output image
|
virtual |
Set the output image origin.
|
virtual |
Set the output image origin.
|
virtual |
Set the output image spacing.
|
virtual |
Set the output image spacing.
|
static |
Determine the image dimension.
Definition at line 127 of file itkWarpVectorImageFilter.h.
|
private |
Definition at line 233 of file itkWarpVectorImageFilter.h.
|
private |
Definition at line 238 of file itkWarpVectorImageFilter.h.
|
private |
Definition at line 236 of file itkWarpVectorImageFilter.h.
|
private |
Definition at line 235 of file itkWarpVectorImageFilter.h.
|
private |
Definition at line 234 of file itkWarpVectorImageFilter.h.
|
static |
Dimension of the Vector pixel type.
Definition at line 130 of file itkWarpVectorImageFilter.h.