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

itk::PhasedArray3DSpecialCoordinatesImage< TPixel > Class Template Reference
[Image Representation Objects]

#include <itkPhasedArray3DSpecialCoordinatesImage.h>

Inheritance diagram for itk::PhasedArray3DSpecialCoordinatesImage< TPixel >:

Inheritance graph
[legend]
Collaboration diagram for itk::PhasedArray3DSpecialCoordinatesImage< TPixel >:

Collaboration graph
[legend]
List of all members.

Detailed Description

template<class TPixel>
class itk::PhasedArray3DSpecialCoordinatesImage< TPixel >

Templated 3D nonrectilinear-coordinate image class for phased-array "range" images.

y-axis <--------------------+ |\ / | \ `~-| \ / | \ ele- | \ / vation | \ projection | v x-axis to y-z plane -> o | v z-axis

In a phased array "range" image, a point in space is represented by the angle between its projection onto the x-z plane and the z-axis (the azimuth coordinate), the angle between its projection onto the y-z plane and the z-axis (the elevation coordinate), and by its distance from the origin (the radius). See the diagram above, which illustrates elevation.

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

azimuth = arctan(x/y) elevation = arctan(y/z) radius = vcl_sqrt(x^2 + y^2 + z^2)

The reversed transforms are:

z = radius / vcl_sqrt(1 + (tan(azimuth))^2 + (tan(elevation))^2 ); x = z * vcl_tan(azimuth) y = z * vcl_tan(elevation)

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

Azimuth is discretized into m_AzimuthAngularSeparation intervals per angular voxel, the most negative azimuth interval containing data is then mapped to azimuth-index=0, and the largest azimuth interval containing data is then mapped to azimuth-index=( number of samples along azimuth axis - 1 ). Elevation is discretized in the same manner. This way, the mapping to Cartesian space is symmetric about the z axis such that the line defined by azimuth/2,elevation/2 = z-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

Definition at line 86 of file itkPhasedArray3DSpecialCoordinatesImage.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 Superclass::IOPixelType 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 PhasedArray3DSpecialCoordinatesImage Self
typedef Superclass::SizeType SizeType
typedef Superclass::SpacingType SpacingType
typedef SpecialCoordinatesImage<
TPixel, 3 > 
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)
 itkStaticConstMacro (ImageDimension, unsigned int, 3)
const TPixel & operator[] (const IndexType &index) const
TPixel & operator[] (const IndexType &index)
Get a physical point (in the space which *the origin and spacing infomation comes from)*from a continuous index(in the index space)*\sa Transform */template< class TCoordRep > void TransformContinuousIndexToPhysicalPoint(const ContinuousIndex< TCoordRep
virtual void SetElevationAngularSeparation (double _arg)
virtual void SetFirstSampleDistance (double _arg)
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)
virtual void SetRadiusSampleSize (double _arg)
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)
template<class TCoordRep>
bool TransformPhysicalPointToContinuousIndex (const Point< TCoordRep, 3 > &point, ContinuousIndex< TCoordRep, 3 > &index) const
template<class TCoordRep>
bool TransformPhysicalPointToIndex (const Point< TCoordRep, 3 > &point, IndexType &index) const

Static Public Member Functions

static Pointer New ()

Public Attributes

Get a physical & index
Convenience methods to set the LargestPossibleRegion

Protected Member Functions

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


Member Typedef Documentation

template<class TPixel>
typedef DefaultPixelAccessorFunctor< Self > itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::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 from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 125 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef DefaultPixelAccessor< PixelType > itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::AccessorType
 

Accessor type that convert data between internal and external representations.

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 120 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef SmartPointer<const Self> itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::ConstPointer
 

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 94 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef WeakPointer<const Self> itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::ConstWeakPointer
 

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 95 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef Superclass::IndexType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::IndexType
 

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

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 137 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef TPixel itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::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 from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 114 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef Superclass::IOPixelType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::IOPixelType
 

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 116 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef Superclass::OffsetType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::OffsetType
 

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

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 140 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef ImportImageContainer<unsigned long, PixelType> itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PixelContainer
 

Container used to store pixels in the image.

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 134 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef PixelContainer::ConstPointer itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PixelContainerConstPointer
 

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 160 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef PixelContainer::Pointer itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PixelContainerPointer
 

A pointer to the pixel container.

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 159 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef TPixel itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PixelType
 

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

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 101 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef SmartPointer<Self> itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::Pointer
 

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 93 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef Superclass::PointType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::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 from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 156 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef Superclass::RegionType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::RegionType
 

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

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 146 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef PhasedArray3DSpecialCoordinatesImage itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::Self
 

Standard class typedefs

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 91 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef Superclass::SizeType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::SizeType
 

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

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 143 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef Superclass::SpacingType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::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 from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 152 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef SpecialCoordinatesImage<TPixel,3> itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::Superclass
 

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 92 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
typedef TPixel itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::ValueType
 

Typedef alias for PixelType

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

Definition at line 108 of file itkPhasedArray3DSpecialCoordinatesImage.h.


Constructor & Destructor Documentation

template<class TPixel>
itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PhasedArray3DSpecialCoordinatesImage  )  [inline, protected]
 

Definition at line 308 of file itkPhasedArray3DSpecialCoordinatesImage.h.

template<class TPixel>
virtual itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::~PhasedArray3DSpecialCoordinatesImage  )  [inline, protected, virtual]
 

Definition at line 315 of file itkPhasedArray3DSpecialCoordinatesImage.h.


Member Function Documentation

void itk::SpecialCoordinatesImage< TPixel , VImageDimension >::Allocate  )  [inherited]
 

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

void itk::SpecialCoordinatesImage< TPixel , VImageDimension >::FillBuffer const TPixel &  value  )  [inherited]
 

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

const TPixel * itk::SpecialCoordinatesImage< TPixel , VImageDimension >::GetBufferPointer  )  const [inline, inherited]
 

Definition at line 251 of file itkSpecialCoordinatesImage.h.

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

Definition at line 249 of file itkSpecialCoordinatesImage.h.

template<class TPixel>
virtual const char* itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::GetNameOfClass  )  const [virtual]
 

Run-time type information (and related methods).

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

TPixel & itk::SpecialCoordinatesImage< TPixel , VImageDimension >::GetPixel const IndexType index  )  [inline, inherited]
 

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.

const TPixel & itk::SpecialCoordinatesImage< TPixel , VImageDimension >::GetPixel const IndexType index  )  const [inline, inherited]
 

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.

const AccessorType itk::SpecialCoordinatesImage< TPixel , VImageDimension >::GetPixelAccessor void   )  const [inline, inherited]
 

Return the Pixel Accesor object

Definition at line 271 of file itkSpecialCoordinatesImage.h.

AccessorType itk::SpecialCoordinatesImage< TPixel , VImageDimension >::GetPixelAccessor void   )  [inline, inherited]
 

Return the Pixel Accessor object

Definition at line 267 of file itkSpecialCoordinatesImage.h.

const PixelContainer* itk::SpecialCoordinatesImage< TPixel , VImageDimension >::GetPixelContainer  )  const [inline, inherited]
 

Definition at line 259 of file itkSpecialCoordinatesImage.h.

PixelContainer* itk::SpecialCoordinatesImage< TPixel , VImageDimension >::GetPixelContainer  )  [inline, inherited]
 

Return a pointer to the container.

Definition at line 256 of file itkSpecialCoordinatesImage.h.

virtual void itk::SpecialCoordinatesImage< TPixel , VImageDimension >::Initialize void   )  [virtual, inherited]
 

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

itk::SpecialCoordinatesImage< TPixel , VImageDimension >::itkStaticConstMacro ImageDimension  ,
unsigned  int,
VImageDimension 
[inherited]
 

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>
itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::itkStaticConstMacro ImageDimension  ,
unsigned  int,
 

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>
static Pointer itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::New  )  [static]
 

Method for creation through the object factory.

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

const TPixel & itk::SpecialCoordinatesImage< TPixel , VImageDimension >::operator[] const IndexType index  )  const [inline, inherited]
 

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.

TPixel & itk::SpecialCoordinatesImage< TPixel , VImageDimension >::operator[] const IndexType index  )  [inline, inherited]
 

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>
Get a physical itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::point in the space which *the origin and spacing infomation comes  from  )  const
 

template<class TPixel>
void itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PrintSelf std::ostream &  os,
Indent  indent
const [protected]
 

Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.

template<class TPixel>
virtual void itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::SetElevationAngularSeparation double  _arg  )  [virtual]
 

Set the number of radians between each elevation unit.

template<class TPixel>
virtual void itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::SetFirstSampleDistance double  _arg  )  [virtual]
 

Set the distance to add to the radius.

virtual void itk::SpecialCoordinatesImage< TPixel , VImageDimension >::SetOrigin const   float[VImageDimension]  )  [inline, virtual, inherited]
 

Definition at line 284 of file itkSpecialCoordinatesImage.h.

virtual void itk::SpecialCoordinatesImage< TPixel , VImageDimension >::SetOrigin const   double[VImageDimension]  )  [inline, virtual, inherited]
 

Definition at line 283 of file itkSpecialCoordinatesImage.h.

virtual void itk::SpecialCoordinatesImage< TPixel , VImageDimension >::SetOrigin const   PointType  )  [inline, virtual, inherited]
 

Definition at line 282 of file itkSpecialCoordinatesImage.h.

void itk::SpecialCoordinatesImage< TPixel , VImageDimension >::SetPixel const IndexType index,
const TPixel &  value
[inline, inherited]
 

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.

void itk::SpecialCoordinatesImage< TPixel , VImageDimension >::SetPixelContainer PixelContainer container  )  [inherited]
 

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

template<class TPixel>
virtual void itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::SetRadiusSampleSize double  _arg  )  [virtual]
 

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

void itk::SpecialCoordinatesImage< TPixel , VImageDimension >::SetRegions SizeType  size  )  [inline, inherited]
 

Definition at line 186 of file itkSpecialCoordinatesImage.h.

References itk::ImageToImageFilterDetail::region().

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

Definition at line 178 of file itkSpecialCoordinatesImage.h.

virtual void itk::SpecialCoordinatesImage< TPixel , VImageDimension >::SetSpacing const   float[VImageDimension]  )  [inline, virtual, inherited]
 

Definition at line 281 of file itkSpecialCoordinatesImage.h.

virtual void itk::SpecialCoordinatesImage< TPixel , VImageDimension >::SetSpacing const   double[VImageDimension]  )  [inline, virtual, inherited]
 

Definition at line 280 of file itkSpecialCoordinatesImage.h.

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, inherited]
 

Definition at line 279 of file itkSpecialCoordinatesImage.h.

itk::SpecialCoordinatesImage< TPixel , VImageDimension >::SpecialCoordinatesImage  )  [protected, inherited]
 

template<class TPixel>
template<class TCoordRep>
bool itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::TransformPhysicalPointToContinuousIndex const Point< TCoordRep, 3 > &  point,
ContinuousIndex< TCoordRep, 3 > &  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 167 of file itkPhasedArray3DSpecialCoordinatesImage.h.

References itk::ImageToImageFilterDetail::region().

template<class TPixel>
template<class TCoordRep>
bool itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::TransformPhysicalPointToIndex const Point< TCoordRep, 3 > &  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 201 of file itkPhasedArray3DSpecialCoordinatesImage.h.

References itk::ImageToImageFilterDetail::region().


Member Data Documentation

template<class TPixel>
Get a physical & itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::index
 

Definition at line 238 of file itkPhasedArray3DSpecialCoordinatesImage.h.

Convenience methods to set the itk::SpecialCoordinatesImage< TPixel , VImageDimension >::LargestPossibleRegion [inherited]
 

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:08:39 2006 for ITK by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2000