#include <itkPhasedArray3DSpecialCoordinatesImage.h>
Inheritance diagram for itk::PhasedArray3DSpecialCoordinatesImage< TPixel >:


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).
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< Self > | Pointer |
| 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 PixelContainer * | GetPixelContainer () const |
| PixelContainer * | GetPixelContainer () |
| 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 () |
|
|||||
|
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. |
|
|||||
|
Accessor type that convert data between internal and external representations. Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. Definition at line 120 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|||||
|
Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. Definition at line 94 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|||||
|
Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. Definition at line 95 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|||||
|
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. |
|
|||||
|
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. |
|
|||||
|
Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. Definition at line 116 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|||||
|
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. |
|
|||||
|
Container used to store pixels in the image. Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. Definition at line 134 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|||||
|
Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. Definition at line 160 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|||||
|
A pointer to the pixel container. Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. Definition at line 159 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|||||
|
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. |
|
|||||
|
Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. Definition at line 93 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|||||
|
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. |
|
|||||
|
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. |
|
|||||
|
Standard class typedefs Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. Definition at line 91 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|||||
|
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. |
|
|||||
|
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. |
|
|||||
|
Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. Definition at line 92 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|||||
|
Typedef alias for PixelType Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. Definition at line 108 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|||||||||
|
Definition at line 308 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|||||||||
|
Definition at line 315 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|
Allocate the image memory. The size of the image must already be set, e.g. by calling SetRegions(). |
|
|
Fill the image buffer with a value. Be sure to call Allocate() first. |
|
|
Definition at line 251 of file itkSpecialCoordinatesImage.h. |
|
|
Definition at line 249 of file itkSpecialCoordinatesImage.h. |
|
|||||||||
|
Run-time type information (and related methods). Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. |
|
|
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. |
|
|
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. |
|
|
Return the Pixel Accesor object Definition at line 271 of file itkSpecialCoordinatesImage.h. |
|
|
Return the Pixel Accessor object Definition at line 267 of file itkSpecialCoordinatesImage.h. |
|
|
Definition at line 259 of file itkSpecialCoordinatesImage.h. |
|
|
Return a pointer to the container. Definition at line 256 of file itkSpecialCoordinatesImage.h. |
|
|
Restore the data object to its initial state. This means releasing memory. |
|
||||||||||||||||
|
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. |
|
||||||||||||||||||||
|
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. |
|
|||||||||
|
Method for creation through the object factory. Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. |
|
|
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. |
|
|
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. |
|
||||||||||
|
|
|
||||||||||||||||
|
Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >. |
|
||||||||||
|
Set the number of radians between each elevation unit. |
|
||||||||||
|
Set the distance to add to the radius. |
|
|
Definition at line 284 of file itkSpecialCoordinatesImage.h. |
|
|
Definition at line 283 of file itkSpecialCoordinatesImage.h. |
|
|
Definition at line 282 of file itkSpecialCoordinatesImage.h. |
|
||||||||||||
|
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. |
|
|
Set the container to use. Note that this does not cause the DataObject to be modified. |
|
||||||||||
|
Set the number of cartesian units between each unit along the R . |
|
|
Definition at line 186 of file itkSpecialCoordinatesImage.h. References itk::ImageToImageFilterDetail::region(). |
|
|
Definition at line 178 of file itkSpecialCoordinatesImage.h. |
|
|
Definition at line 281 of file itkSpecialCoordinatesImage.h. |
|
|
Definition at line 280 of file itkSpecialCoordinatesImage.h. |
|
|
Definition at line 279 of file itkSpecialCoordinatesImage.h. |
|
|
|
|
||||||||||||||||||||
|
Get the continuous index from a physical point. Returns true if the resulting index is within the image, false otherwise.
Definition at line 167 of file itkPhasedArray3DSpecialCoordinatesImage.h. References itk::ImageToImageFilterDetail::region(). |
|
||||||||||||||||||||
|
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
Definition at line 201 of file itkPhasedArray3DSpecialCoordinatesImage.h. References itk::ImageToImageFilterDetail::region(). |
|
|||||
|
Definition at line 238 of file itkPhasedArray3DSpecialCoordinatesImage.h. |
|
|
Definition at line 175 of file itkSpecialCoordinatesImage.h. |
1.4.2 written by Dimitri van Heesch,
© 1997-2000