Medical Imaging Interaction Toolkit  2018.4.99-b20efe7f
Medical Imaging Interaction Toolkit
itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension > Class Template Reference

Templated 2D nonrectilinear-coordinate image class for curvilinear/phased-array "range" images. More...

#include <itkCurvilinearArraySpecialCoordinatesImage.h>

Inheritance diagram for itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >:
Collaboration diagram for itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >:

Public Types

typedef CurvilinearArraySpecialCoordinatesImage Self
 
typedef SpecialCoordinatesImage< TPixel, VDimension > Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef WeakPointer< const SelfConstWeakPointer
 
typedef TPixel PixelType
 
typedef TPixel ValueType
 
typedef TPixel InternalPixelType
 
typedef Superclass::IOPixelType IOPixelType
 
typedef DefaultPixelAccessor< PixelTypeAccessorType
 
typedef DefaultPixelAccessorFunctor< SelfAccessorFunctorType
 
typedef NeighborhoodAccessorFunctor< SelfNeighborhoodAccessorFunctorType
 
typedef Superclass::IndexType IndexType
 
typedef Superclass::IndexValueType IndexValueType
 
typedef Superclass::OffsetType OffsetType
 
typedef Superclass::SizeType SizeType
 
typedef Superclass::SizeValueType SizeValueType
 
typedef ImportImageContainer< SizeValueType, PixelTypePixelContainer
 
typedef Superclass::RegionType RegionType
 
typedef Superclass::SpacingType SpacingType
 
typedef Superclass::PointType PointType
 
typedef PixelContainer::Pointer PixelContainerPointer
 
typedef PixelContainer::ConstPointer PixelContainerConstPointer
 

Public Member Functions

virtual const char * GetClassName () const
 
 itkStaticConstMacro (ImageDimension, unsigned int, VDimension)
 
virtual void Graft (const DataObject *data) ITK_OVERRIDE
 
template<typename TCoordRep >
bool TransformPhysicalPointToContinuousIndex (const Point< TCoordRep, VDimension > &point, ContinuousIndex< TCoordRep, VDimension > &index) const
 Get the continuous index from a physical point. More...
 
template<typename TCoordRep >
bool TransformPhysicalPointToIndex (const Point< TCoordRep, VDimension > &point, IndexType &index) const
 
template<typename TCoordRep >
void TransformContinuousIndexToPhysicalPoint (const ContinuousIndex< TCoordRep, VDimension > &index, Point< TCoordRep, VDimension > &point) const
 
template<typename TCoordRep >
void TransformIndexToPhysicalPoint (const IndexType &index, Point< TCoordRep, VDimension > &point) const
 
virtual void SetLateralAngularSeparation (double _arg)
 
virtual double GetLateralAngularSeparation () const
 
virtual void SetRadiusSampleSize (double _arg)
 
virtual double GetRadiusSampleSize () const
 
virtual void SetFirstSampleDistance (double _arg)
 
virtual double GetFirstSampleDistance () const
 
template<typename TCoordRep >
void TransformLocalVectorToPhysicalVector (FixedArray< TCoordRep, VDimension > &) const
 
template<typename TCoordRep >
void TransformPhysicalVectorToLocalVector (const FixedArray< TCoordRep, VDimension > &, FixedArray< TCoordRep, VDimension > &) const
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 CurvilinearArraySpecialCoordinatesImage ()
 
virtual ~CurvilinearArraySpecialCoordinatesImage ()
 
virtual void PrintSelf (std::ostream &os, Indent indent) const ITK_OVERRIDE
 

Detailed Description

template<typename TPixel, unsigned int VDimension>
class itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >

Templated 2D nonrectilinear-coordinate image class for curvilinear/phased-array "range" images.

*
*                             +---------------------> x-axis
*                             |\
*                          /  | \
*                             |-~\
*                       /     |   \
*                             |    \
*                    /        |     \
*                             | lateral
*                             |
*                             v y-axis
*
* 

The equations form performing the conversion from Cartesian coordinates to curvilinear/phased array coordinates are as follows:

lateral = arctan(x/y) radius = std::sqrt(x^2 + y^2)

The reversed transforms are:

x = radius * std::sin(lateral) y = radius * std::cos(lateral)

CurvilinearArraySpecialCoordinatesImages are templated over a pixel type and follow the SpecialCoordinatesImage interface. The data in an image is arranged in a 1D array as [lateral-index][radius-index] with radius-index varying most rapidly. The Index type reverses the order so that Index[0] = radius-index, Index[1] = lateral-index.

Lateral is discretized into m_LateralAngularSeparation intervals per angular voxel, the most negative lateral interval containing data is then mapped to lateral-index=0, and the largest lateral interval containing data is then mapped to lateral-index=( number of samples along lateral axis - 1 ). Elevation is discretized in the same manner. This way, the mapping to Cartesian space is symmetric about the x axis such that the line defined by lateral/2 = x-axis. Radius is discretized into m_RadiusSampleSize units per angular voxel. The smallest range interval containing data is then mapped to radius-index=0, such that radius = m_FirstSampleDistance + (radius-index * m_RadiusSampleSize).

See also
SpecialCoordinatesImage
PhasedArray3DSpecialCoordinatesImage

Definition at line 99 of file itkCurvilinearArraySpecialCoordinatesImage.h.

Member Typedef Documentation

◆ AccessorFunctorType

template<typename TPixel , unsigned int VDimension>
typedef DefaultPixelAccessorFunctor< Self > itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::AccessorFunctorType

Accessor functor to choose between accessors: DefaultPixelAccessor for the Image, and DefaultVectorPixelAccessor for the vector image. The functor provides a generic API between the two accessors.

Definition at line 138 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ AccessorType

template<typename TPixel , unsigned int VDimension>
typedef DefaultPixelAccessor< PixelType > itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::AccessorType

Accessor type that convert data between internal and external representations.

Definition at line 133 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ ConstPointer

template<typename TPixel , unsigned int VDimension>
typedef SmartPointer< const Self > itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::ConstPointer

◆ ConstWeakPointer

template<typename TPixel , unsigned int VDimension>
typedef WeakPointer< const Self > itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::ConstWeakPointer

◆ IndexType

template<typename TPixel , unsigned int VDimension>
typedef Superclass::IndexType itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::IndexType

Index typedef support. An index is used to access pixel values.

Definition at line 151 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ IndexValueType

template<typename TPixel , unsigned int VDimension>
typedef Superclass::IndexValueType itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::IndexValueType

◆ InternalPixelType

template<typename TPixel , unsigned int VDimension>
typedef TPixel itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::InternalPixelType

Internal Pixel representation. Used to maintain a uniform API with Image Adaptors and allow to keep a particular internal representation of data while showing a different external representation.

Definition at line 127 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ IOPixelType

template<typename TPixel , unsigned int VDimension>
typedef Superclass::IOPixelType itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::IOPixelType

◆ NeighborhoodAccessorFunctorType

template<typename TPixel , unsigned int VDimension>
typedef NeighborhoodAccessorFunctor< Self > itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::NeighborhoodAccessorFunctorType

Typedef for the functor used to access a neighborhood of pixel pointers.

Definition at line 142 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ OffsetType

template<typename TPixel , unsigned int VDimension>
typedef Superclass::OffsetType itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::OffsetType

Offset typedef support. An offset is used to access pixel values.

Definition at line 155 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ PixelContainer

template<typename TPixel , unsigned int VDimension>
typedef ImportImageContainer< SizeValueType, PixelType > itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::PixelContainer

Container used to store pixels in the image.

Definition at line 162 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ PixelContainerConstPointer

template<typename TPixel , unsigned int VDimension>
typedef PixelContainer::ConstPointer itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::PixelContainerConstPointer

◆ PixelContainerPointer

template<typename TPixel , unsigned int VDimension>
typedef PixelContainer::Pointer itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::PixelContainerPointer

A pointer to the pixel container.

Definition at line 184 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ PixelType

template<typename TPixel , unsigned int VDimension>
typedef TPixel itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::PixelType

Pixel typedef support. Used to declare pixel type in filters or other operations.

Definition at line 114 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ Pointer

template<typename TPixel , unsigned int VDimension>
typedef SmartPointer< Self > itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::Pointer

◆ PointType

template<typename TPixel , unsigned int VDimension>
typedef Superclass::PointType itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::PointType

Origin typedef support. The origin is the "fake" geometric coordinates of the index (0,0). Also for use w/ filters designed for normal images.

Definition at line 181 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ RegionType

template<typename TPixel , unsigned int VDimension>
typedef Superclass::RegionType itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::RegionType

Region typedef support. A region is used to specify a subset of an image.

Definition at line 167 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ Self

template<typename TPixel , unsigned int VDimension>
typedef CurvilinearArraySpecialCoordinatesImage itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::Self

Standard class typedefs

Definition at line 104 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ SizeType

template<typename TPixel , unsigned int VDimension>
typedef Superclass::SizeType itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::SizeType

Size typedef support. A size is used to define region bounds.

Definition at line 158 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ SizeValueType

template<typename TPixel , unsigned int VDimension>
typedef Superclass::SizeValueType itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::SizeValueType

◆ SpacingType

template<typename TPixel , unsigned int VDimension>
typedef Superclass::SpacingType itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::SpacingType

Spacing typedef support. Spacing holds the "fake" size of a pixel, making each pixel look like a 1 unit hyper-cube to filters that were designed for normal images and that therefore use m_Spacing. The spacing is the geometric distance between image samples.

Definition at line 175 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ Superclass

template<typename TPixel , unsigned int VDimension>
typedef SpecialCoordinatesImage< TPixel, VDimension > itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::Superclass

◆ ValueType

template<typename TPixel , unsigned int VDimension>
typedef TPixel itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::ValueType

Typedef alias for PixelType

Definition at line 121 of file itkCurvilinearArraySpecialCoordinatesImage.h.

Constructor & Destructor Documentation

◆ CurvilinearArraySpecialCoordinatesImage()

◆ ~CurvilinearArraySpecialCoordinatesImage()

Member Function Documentation

◆ GetClassName()

template<typename TPixel , unsigned int VDimension>
virtual const char* itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

◆ GetFirstSampleDistance()

template<typename TPixel , unsigned int VDimension>
virtual double itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::GetFirstSampleDistance ( ) const
virtual

◆ GetLateralAngularSeparation()

template<typename TPixel , unsigned int VDimension>
virtual double itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::GetLateralAngularSeparation ( ) const
virtual

◆ GetRadiusSampleSize()

template<typename TPixel , unsigned int VDimension>
virtual double itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::GetRadiusSampleSize ( ) const
virtual

◆ Graft()

template<typename TPixel , unsigned int VDimension>
virtual void itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::Graft ( const DataObject *  data)
virtual

Graft the data and information from one image to another. This is a convenience method to setup a second image with all the meta information of another image and use the same pixel container. Note that this method is different than just using two SmartPointers to the same image since separate DataObjects are still maintained. This method is similar to ImageSource::GraftOutput(). The implementation in ImageBase simply calls CopyInformation() and copies the region ivars. The implementation here refers to the superclass' implementation and then copies over the pixel container.

◆ itkStaticConstMacro()

template<typename TPixel , unsigned int VDimension>
itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::itkStaticConstMacro ( ImageDimension  ,
unsigned  int,
VDimension   
)

Dimension of the image. This constant is used by functions that are templated over image type (as opposed to being templated over pixel type and dimension) when they need compile time access to the dimension of the image.

◆ New()

template<typename TPixel , unsigned int VDimension>
static Pointer itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::New ( )
static

Method for creation through the object factory.

◆ PrintSelf()

template<typename TPixel , unsigned int VDimension>
virtual void itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

◆ SetFirstSampleDistance()

template<typename TPixel , unsigned int VDimension>
virtual void itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::SetFirstSampleDistance ( double  _arg)
virtual

Set the distance to add to the radius.

◆ SetLateralAngularSeparation()

template<typename TPixel , unsigned int VDimension>
virtual void itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::SetLateralAngularSeparation ( double  _arg)
virtual

Set/Get the number of radians between each lateral unit.

◆ SetRadiusSampleSize()

template<typename TPixel , unsigned int VDimension>
virtual void itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::SetRadiusSampleSize ( double  _arg)
virtual

Set/Get the number of cartesian units between each unit along the R .

◆ TransformContinuousIndexToPhysicalPoint()

template<typename TPixel , unsigned int VDimension>
template<typename TCoordRep >
void itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::TransformContinuousIndexToPhysicalPoint ( const ContinuousIndex< TCoordRep, VDimension > &  index,
Point< TCoordRep, VDimension > &  point 
) const
inline

Get a physical point (in the space which the origin and spacing information comes from) from a continuous index (in the index space)

See also
Transform

Definition at line 260 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ TransformIndexToPhysicalPoint()

template<typename TPixel , unsigned int VDimension>
template<typename TCoordRep >
void itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::TransformIndexToPhysicalPoint ( const IndexType index,
Point< TCoordRep, VDimension > &  point 
) const
inline

Get a physical point (in the space which the origin and spacing information comes from) from a discrete index (in the index space)

See also
Transform

Definition at line 282 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ TransformLocalVectorToPhysicalVector()

template<typename TPixel , unsigned int VDimension>
template<typename TCoordRep >
void itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::TransformLocalVectorToPhysicalVector ( FixedArray< TCoordRep, VDimension > &  ) const
inline

◆ TransformPhysicalPointToContinuousIndex()

template<typename TPixel , unsigned int VDimension>
template<typename TCoordRep >
bool itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::TransformPhysicalPointToContinuousIndex ( const Point< TCoordRep, VDimension > &  point,
ContinuousIndex< TCoordRep, VDimension > &  index 
) const
inline

Get the continuous index from a physical point.

Returns true if the resulting index is within the image, false otherwise.

See also
Transform

Definition at line 204 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ TransformPhysicalPointToIndex()

template<typename TPixel , unsigned int VDimension>
template<typename TCoordRep >
bool itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::TransformPhysicalPointToIndex ( const Point< TCoordRep, VDimension > &  point,
IndexType index 
) const
inline

Get the index (discrete) from a physical point. Floating point index results are truncated to integers. Returns true if the resulting index is within the image, false otherwise

See also
Transform

Definition at line 232 of file itkCurvilinearArraySpecialCoordinatesImage.h.

◆ TransformPhysicalVectorToLocalVector()

template<typename TPixel , unsigned int VDimension>
template<typename TCoordRep >
void itk::CurvilinearArraySpecialCoordinatesImage< TPixel, VDimension >::TransformPhysicalVectorToLocalVector ( const FixedArray< TCoordRep, VDimension > &  ,
FixedArray< TCoordRep, VDimension > &   
) const
inline

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