Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::SpecialCoordinatesImage< TPixel, VImageDimension > Class Template Reference
[Image Representation Objects]

#include <itkSpecialCoordinatesImage.h>

Inheritance diagram for itk::SpecialCoordinatesImage< TPixel, VImageDimension >:

Inheritance graph
[legend]
Collaboration diagram for itk::SpecialCoordinatesImage< TPixel, VImageDimension >:

Collaboration graph
[legend]
List of all members.

Detailed Description

template<class TPixel, unsigned int VImageDimension = 2>
class itk::SpecialCoordinatesImage< TPixel, VImageDimension >

Templated n-dimensional nonrectilinear-coordinate image base class.

SpecialCoordinatesImages are templated over a pixel type (modeling the dependent variables), and a dimension (number of independent variables). The container for the pixel data is the ImportImageContainer.

Within the pixel container, images are modeled as arrays, defined by a start index and a size.

Almost arbitrary mappings between index space & Cartesian physical space are possible, and so m_Origin and m_Spacing should be ignored. They exist only to allow the possibility of running a "spatially-aware" filter in raw index space, as if the SpecialCoordinatesImage data was laid out on a regular grid. Note that this may or may not produce useful results, and it is up the the user to determine the appropriateness of running a filter designed for normal images on special-coordinates images.

The only correct generic method for operating on a SpecialCoordinatesImage in physical space is to use the virtual functions TransformPhysicalPointToIndex, TransformPhysicalPointToContinuousIndex, TransformIndexToPhysicalPoint, and TransformContinuousIndexToPhysicalPoint. All of these methods transform points in Cartesian physical space to and from indices in the special (typically non-Cartesian) index space. It is also possible to check the type of coordinate representation being used by a SpecialCoordinatesImage, and then use representation-specific code to speed up the filter for certain coordinate representations, falling back to the generic method for unrecognized and/or unoptimized coordinate representations.

There are three sets of meta-data describing portians of a SpecialCoordinatesImages. These are "Region" objects that define a portion of an image via a starting index for the image array and a size. The ivar LargestPossibleRegion defines the size and starting index of the image dataset. The entire image dataset, however, need not be resident in memory. The region of the image that is resident in memory is defined by the "BufferedRegion". The Buffer is a contiguous block of memory. The third set of meta-data defines a region of interest, called the "RequestedRegion". The RequestedRegion is used by the pipeline execution model to define what a filter is requested to produce.

[RegionIndex, RegionSize] C [BufferIndex, BufferSize] C [ImageIndex, ImageSize]

Pixels can be accessed direcly using the SetPixel() and GetPixel() methods or can be accessed via iterators. Begin() creates an iterator that can walk a specified region of a buffer.

The pixel type may be one of the native types; a Insight-defined class type such as Vector; or a user-defined type. Note that depending on the type of pixel that you use, the process objects (i.e., those filters processing data objects) may not operate on the image and/or pixel type. This becomes apparent at compile-time because operator overloading (for the pixel type) is not supported.

The data in an image is arranged in a 1D array as [][][][slice][row][col] with the column index varying most rapidly. The Index type reverses the order so that with Index[0] = col, Index[1] = row, Index[2] = slice, ...

See also:
ImageContainerInterface

Image

Definition at line 96 of file itkSpecialCoordinatesImage.h.

Public Types

typedef DefaultPixelAccessorFunctor<
Self
AccessorFunctorType
typedef DefaultPixelAccessor<
PixelType
AccessorType
typedef SmartPointer< const
Self
ConstPointer
typedef WeakPointer< const
Self
ConstWeakPointer
typedef Superclass::IndexType IndexType
typedef TPixel InternalPixelType
typedef PixelType IOPixelType
typedef Superclass::OffsetType OffsetType
typedef ImportImageContainer<
unsigned long, PixelType
PixelContainer
typedef PixelContainer::ConstPointer PixelContainerConstPointer
typedef PixelContainer::Pointer PixelContainerPointer
typedef TPixel PixelType
typedef SmartPointer< SelfPointer
typedef Superclass::PointType PointType
typedef Superclass::RegionType RegionType
typedef SpecialCoordinatesImage Self
typedef Superclass::SizeType SizeType
typedef Superclass::SpacingType SpacingType
typedef ImageBase< VImageDimension > Superclass
typedef TPixel ValueType

Public Member Functions

void Allocate ()
void FillBuffer (const TPixel &value)
const TPixel * GetBufferPointer () const
Return a pointer to the beginning
of the buffer This is used
by *the image iterator class
*TPixel * 
GetBufferPointer ()
virtual const char * GetNameOfClass () const
TPixel & GetPixel (const IndexType &index)
const TPixel & GetPixel (const IndexType &index) const
const AccessorType GetPixelAccessor (void) const
AccessorType GetPixelAccessor (void)
const PixelContainerGetPixelContainer () const
PixelContainerGetPixelContainer ()
virtual void Initialize ()
 itkStaticConstMacro (ImageDimension, unsigned int, VImageDimension)
const TPixel & operator[] (const IndexType &index) const
TPixel & operator[] (const IndexType &index)
virtual void SetOrigin (const float[VImageDimension])
virtual void SetOrigin (const double[VImageDimension])
virtual void SetOrigin (const PointType)
void SetPixel (const IndexType &index, const TPixel &value)
void SetPixelContainer (PixelContainer *container)
void SetRegions (SizeType size)
Convenience methods to set
the *BufferedRegion and RequestedRegion
Allocate must still be called
*void 
SetRegions (RegionType region)
virtual void SetSpacing (const float[VImageDimension])
virtual void SetSpacing (const double[VImageDimension])
These functions do NOTHING
They exist only to not break
the pipeline *It is vital
that the user specify any
and all physical spacing parameters
*to the output of a normal
filter which is being used
to output a *special coordinates
image Filters designed to
produce a particular kind
*of special coordinates image
should do this automatically
*virtual void 
SetSpacing (const SpacingType)

Static Public Member Functions

static Pointer New ()

Public Attributes

Convenience methods to set the LargestPossibleRegion

Protected Member Functions

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


Member Typedef Documentation

template<class TPixel, unsigned int VImageDimension = 2>
typedef DefaultPixelAccessorFunctor< Self > itk::SpecialCoordinatesImage< TPixel, VImageDimension >::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.

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 134 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef DefaultPixelAccessor< PixelType > itk::SpecialCoordinatesImage< TPixel, VImageDimension >::AccessorType
 

Accessor type that convert data between internal and external representations.

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 129 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef SmartPointer<const Self> itk::SpecialCoordinatesImage< TPixel, VImageDimension >::ConstPointer
 

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 103 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef WeakPointer<const Self> itk::SpecialCoordinatesImage< TPixel, VImageDimension >::ConstWeakPointer
 

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 104 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef Superclass::IndexType itk::SpecialCoordinatesImage< TPixel, VImageDimension >::IndexType
 

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

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 146 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef TPixel itk::SpecialCoordinatesImage< TPixel, VImageDimension >::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.

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 123 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef PixelType itk::SpecialCoordinatesImage< TPixel, VImageDimension >::IOPixelType
 

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 125 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef Superclass::OffsetType itk::SpecialCoordinatesImage< TPixel, VImageDimension >::OffsetType
 

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

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 149 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef ImportImageContainer<unsigned long, PixelType> itk::SpecialCoordinatesImage< TPixel, VImageDimension >::PixelContainer
 

Container used to store pixels in the image.

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 143 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef PixelContainer::ConstPointer itk::SpecialCoordinatesImage< TPixel, VImageDimension >::PixelContainerConstPointer
 

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 169 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef PixelContainer::Pointer itk::SpecialCoordinatesImage< TPixel, VImageDimension >::PixelContainerPointer
 

A pointer to the pixel container.

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 168 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef TPixel itk::SpecialCoordinatesImage< TPixel, VImageDimension >::PixelType
 

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

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 110 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef SmartPointer<Self> itk::SpecialCoordinatesImage< TPixel, VImageDimension >::Pointer
 

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 102 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef Superclass::PointType itk::SpecialCoordinatesImage< TPixel, VImageDimension >::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.

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 165 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef Superclass::RegionType itk::SpecialCoordinatesImage< TPixel, VImageDimension >::RegionType
 

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

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 155 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef SpecialCoordinatesImage itk::SpecialCoordinatesImage< TPixel, VImageDimension >::Self
 

Standard class typedefs

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 100 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef Superclass::SizeType itk::SpecialCoordinatesImage< TPixel, VImageDimension >::SizeType
 

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

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 152 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef Superclass::SpacingType itk::SpecialCoordinatesImage< TPixel, VImageDimension >::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.

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 161 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef ImageBase<VImageDimension> itk::SpecialCoordinatesImage< TPixel, VImageDimension >::Superclass
 

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 101 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
typedef TPixel itk::SpecialCoordinatesImage< TPixel, VImageDimension >::ValueType
 

Typedef alias for PixelType

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

Definition at line 117 of file itkSpecialCoordinatesImage.h.


Constructor & Destructor Documentation

template<class TPixel, unsigned int VImageDimension = 2>
itk::SpecialCoordinatesImage< TPixel, VImageDimension >::SpecialCoordinatesImage  )  [protected]
 

template<class TPixel, unsigned int VImageDimension = 2>
virtual itk::SpecialCoordinatesImage< TPixel, VImageDimension >::~SpecialCoordinatesImage  )  [inline, protected, virtual]
 

Definition at line 314 of file itkSpecialCoordinatesImage.h.


Member Function Documentation

template<class TPixel, unsigned int VImageDimension = 2>
void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::Allocate  ) 
 

Allocate the image memory. The size of the image must already be set, e.g. by calling SetRegions().

template<class TPixel, unsigned int VImageDimension = 2>
void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::FillBuffer const TPixel &  value  ) 
 

Fill the image buffer with a value. Be sure to call Allocate() first.

template<class TPixel, unsigned int VImageDimension = 2>
const TPixel* itk::SpecialCoordinatesImage< TPixel, VImageDimension >::GetBufferPointer  )  const [inline]
 

Definition at line 251 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
Return a pointer to the beginning of the buffer This is used by* the image iterator class* TPixel* itk::SpecialCoordinatesImage< TPixel, VImageDimension >::GetBufferPointer  )  [inline]
 

Definition at line 249 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
virtual const char* itk::SpecialCoordinatesImage< TPixel, VImageDimension >::GetNameOfClass  )  const [virtual]
 

Run-time type information (and related methods).

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

template<class TPixel, unsigned int VImageDimension = 2>
TPixel& itk::SpecialCoordinatesImage< TPixel, VImageDimension >::GetPixel const IndexType index  )  [inline]
 

Get a reference to a pixel (e.g. for editing).

For efficiency, this function does not check that the image has actually been allocated yet.

Definition at line 227 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
const TPixel& itk::SpecialCoordinatesImage< TPixel, VImageDimension >::GetPixel const IndexType index  )  const [inline]
 

Get a pixel (read only version).

For efficiency, this function does not check that the image has actually been allocated yet.

Definition at line 217 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
const AccessorType itk::SpecialCoordinatesImage< TPixel, VImageDimension >::GetPixelAccessor void   )  const [inline]
 

Return the Pixel Accesor object

Definition at line 271 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
AccessorType itk::SpecialCoordinatesImage< TPixel, VImageDimension >::GetPixelAccessor void   )  [inline]
 

Return the Pixel Accessor object

Definition at line 267 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
const PixelContainer* itk::SpecialCoordinatesImage< TPixel, VImageDimension >::GetPixelContainer  )  const [inline]
 

Definition at line 259 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
PixelContainer* itk::SpecialCoordinatesImage< TPixel, VImageDimension >::GetPixelContainer  )  [inline]
 

Return a pointer to the container.

Definition at line 256 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
virtual void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::Initialize  )  [virtual]
 

Restore the data object to its initial state. This means releasing memory.

template<class TPixel, unsigned int VImageDimension = 2>
itk::SpecialCoordinatesImage< TPixel, VImageDimension >::itkStaticConstMacro ImageDimension  ,
unsigned  int,
VImageDimension 
 

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.

template<class TPixel, unsigned int VImageDimension = 2>
static Pointer itk::SpecialCoordinatesImage< TPixel, VImageDimension >::New  )  [static]
 

Method for creation through the object factory.

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

template<class TPixel, unsigned int VImageDimension = 2>
const TPixel& itk::SpecialCoordinatesImage< TPixel, VImageDimension >::operator[] const IndexType index  )  const [inline]
 

Access a pixel. This version can only be an rvalue.

For efficiency, this function does not check that the image has actually been allocated yet.

Definition at line 244 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
TPixel& itk::SpecialCoordinatesImage< TPixel, VImageDimension >::operator[] const IndexType index  )  [inline]
 

Access a pixel. This version can be an lvalue.

For efficiency, this function does not check that the image has actually been allocated yet.

Definition at line 237 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::PrintSelf std::ostream &  os,
Indent  indent
const [protected]
 

Reimplemented in itk::PhasedArray3DSpecialCoordinatesImage< TPixel >.

template<class TPixel, unsigned int VImageDimension = 2>
virtual void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::SetOrigin const   float[VImageDimension]  )  [inline, virtual]
 

Definition at line 284 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
virtual void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::SetOrigin const   double[VImageDimension]  )  [inline, virtual]
 

Definition at line 283 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
virtual void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::SetOrigin const   PointType  )  [inline, virtual]
 

Definition at line 282 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::SetPixel const IndexType index,
const TPixel &  value
[inline]
 

Set a pixel value.

Allocate() needs to have been called first -- for efficiency, this function does not check that the image has actually been allocated yet.

Definition at line 207 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::SetPixelContainer PixelContainer container  ) 
 

Set the container to use. Note that this does not cause the DataObject to be modified.

template<class TPixel, unsigned int VImageDimension = 2>
void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::SetRegions SizeType  size  )  [inline]
 

Definition at line 186 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
Convenience methods to set the * BufferedRegion and RequestedRegion Allocate must still be called* void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::SetRegions RegionType  region  )  [inline]
 

Definition at line 178 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
virtual void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::SetSpacing const   float[VImageDimension]  )  [inline, virtual]
 

Definition at line 281 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
virtual void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::SetSpacing const   double[VImageDimension]  )  [inline, virtual]
 

Definition at line 280 of file itkSpecialCoordinatesImage.h.

template<class TPixel, unsigned int VImageDimension = 2>
These functions do NOTHING They exist only to not break the pipeline* It is vital that the user specify any and all physical spacing parameters* to the output of a normal filter which is being used to output a* special coordinates image Filters designed to produce a particular kind* of special coordinates image should do this automatically* virtual void itk::SpecialCoordinatesImage< TPixel, VImageDimension >::SetSpacing const   SpacingType  )  [inline, virtual]
 

Definition at line 279 of file itkSpecialCoordinatesImage.h.


Member Data Documentation

template<class TPixel, unsigned int VImageDimension = 2>
Convenience methods to set the itk::SpecialCoordinatesImage< TPixel, VImageDimension >::LargestPossibleRegion
 

Definition at line 175 of file itkSpecialCoordinatesImage.h.


The documentation for this class was generated from the following file:
Generated at Sun Jul 9 21:32:37 2006 for ITK by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2000