ITK
4.13.0
Insight Segmentation and Registration Toolkit
|
#include <itkPhasedArray3DSpecialCoordinatesImage.h>
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 = std::sqrt(x^2 + y^2 + z^2)
The reversed transforms are:
z = radius / std::sqrt(1 + (tan(azimuth))^2 + (tan(elevation))^2 ); x = z * std::tan(azimuth) y = z * std::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 95 of file itkPhasedArray3DSpecialCoordinatesImage.h.
Public Member Functions | |
virtual ::itk::LightObject::Pointer | CreateAnother () const |
virtual const char * | GetNameOfClass () const |
template<typename TCoordRep , typename TIndexRep > | |
bool | TransformPhysicalPointToContinuousIndex (const Point< TCoordRep, 3 > &point, ContinuousIndex< TIndexRep, 3 > &index) const |
Public Member Functions inherited from itk::SpecialCoordinatesImage< TPixel, 3 > | |
virtual void | Allocate (bool initialize=false) override |
virtual ::itk::LightObject::Pointer | CreateAnother () const |
void | FillBuffer (const TPixel &value) |
const TPixel & | GetPixel (const IndexType &index) const |
TPixel & | GetPixel (const IndexType &index) |
AccessorType | GetPixelAccessor (void) |
const AccessorType | GetPixelAccessor (void) const |
PixelContainer * | GetPixelContainer () |
const PixelContainer * | GetPixelContainer () const |
virtual void | Initialize () override |
TPixel & | operator[] (const IndexType &index) |
const TPixel & | operator[] (const IndexType &index) const |
void | SetPixel (const IndexType &index, const TPixel &value) |
void | SetPixelContainer (PixelContainer *container) |
TPixel * | GetBufferPointer () |
const TPixel * | GetBufferPointer () const |
virtual void | SetSpacing (const SpacingType &) override |
virtual void | SetSpacing (const double[VImageDimension]) override |
virtual void | SetSpacing (const float[VImageDimension]) override |
virtual void | SetOrigin (const PointType) override |
virtual void | SetOrigin (const double[VImageDimension]) override |
virtual void | SetOrigin (const float[VImageDimension]) override |
Public Member Functions inherited from itk::ImageBase< VImageDimension > | |
OffsetValueType | ComputeOffset (const IndexType &ind) const |
virtual void | CopyInformation (const DataObject *data) override |
virtual const RegionType & | GetBufferedRegion () const |
virtual const DirectionType & | GetDirection () const |
virtual const DirectionType & | GetInverseDirection () const |
virtual const RegionType & | GetLargestPossibleRegion () const |
virtual const PointType & | GetOrigin () const |
virtual const RegionType & | GetRequestedRegion () const |
virtual const SpacingType & | GetSpacing () const |
virtual void | Graft (const Self *data) |
virtual bool | RequestedRegionIsOutsideOfTheBufferedRegion () override |
virtual void | SetBufferedRegion (const RegionType ®ion) |
virtual void | SetDirection (const DirectionType &direction) |
virtual void | SetLargestPossibleRegion (const RegionType ®ion) |
virtual void | SetRegions (const SizeType &size) |
virtual void | SetRequestedRegion (const RegionType ®ion) |
virtual void | SetRequestedRegion (const DataObject *data) override |
virtual void | SetRequestedRegionToLargestPossibleRegion () override |
template<typename TCoordRep > | |
void | TransformLocalVectorToPhysicalVector (const FixedArray< TCoordRep, VImageDimension > &inputGradient, FixedArray< TCoordRep, VImageDimension > &outputGradient) const |
template<typename TCoordRep , typename TIndexRep > | |
bool | TransformPhysicalPointToContinuousIndex (const Point< TCoordRep, VImageDimension > &point, ContinuousIndex< TIndexRep, VImageDimension > &index) const |
template<typename TCoordRep > | |
bool | TransformPhysicalPointToIndex (const Point< TCoordRep, VImageDimension > &point, IndexType &index) const |
template<typename TCoordRep > | |
void | TransformPhysicalVectorToLocalVector (const FixedArray< TCoordRep, VImageDimension > &inputGradient, FixedArray< TCoordRep, VImageDimension > &outputGradient) const |
virtual void | UpdateOutputData () override |
virtual void | UpdateOutputInformation () override |
virtual bool | VerifyRequestedRegion () override |
virtual void | SetRegions (const RegionType ®ion) |
const OffsetValueType * | GetOffsetTable () const |
IndexType | ComputeIndex (OffsetValueType offset) const |
template<typename TCoordRep , typename TIndexRep > | |
void | TransformContinuousIndexToPhysicalPoint (const ContinuousIndex< TIndexRep, VImageDimension > &index, Point< TCoordRep, VImageDimension > &point) const |
template<typename TCoordRep > | |
void | TransformIndexToPhysicalPoint (const IndexType &index, Point< TCoordRep, VImageDimension > &point) const |
virtual unsigned int | GetNumberOfComponentsPerPixel () const |
virtual void | SetNumberOfComponentsPerPixel (unsigned int) |
Public Member Functions inherited from itk::DataObject | |
virtual void | DataHasBeenGenerated () |
void | DisconnectPipeline () |
bool | GetDataReleased () const |
virtual const bool & | GetReleaseDataFlag () const |
SmartPointerForwardReference < ProcessObject > | GetSource () const |
DataObjectPointerArraySizeType | GetSourceOutputIndex () const |
const DataObjectIdentifierType & | GetSourceOutputName () const |
virtual ModifiedTimeType | GetUpdateMTime () const |
virtual void | PrepareForNewData () |
virtual void | PropagateRequestedRegion () |
void | ReleaseData () |
virtual void | ReleaseDataFlagOff () |
virtual void | ReleaseDataFlagOn () |
virtual void | ResetPipeline () |
void | SetReleaseDataFlag (bool flag) |
bool | ShouldIReleaseData () const |
virtual void | Update () |
void | SetPipelineMTime (ModifiedTimeType time) |
virtual const ModifiedTimeType & | GetPipelineMTime () const |
virtual void | SetRealTimeStamp (RealTimeStamp _arg) |
virtual const RealTimeStamp & | GetRealTimeStamp () const |
Public Member Functions inherited from itk::Object | |
unsigned long | AddObserver (const EventObject &event, Command *) |
unsigned long | AddObserver (const EventObject &event, Command *) const |
virtual void | DebugOff () const |
virtual void | DebugOn () const |
Command * | GetCommand (unsigned long tag) |
bool | GetDebug () const |
MetaDataDictionary & | GetMetaDataDictionary () |
const MetaDataDictionary & | GetMetaDataDictionary () const |
virtual ModifiedTimeType | GetMTime () const |
virtual const TimeStamp & | GetTimeStamp () const |
bool | HasObserver (const EventObject &event) const |
void | InvokeEvent (const EventObject &) |
void | InvokeEvent (const EventObject &) const |
virtual void | Modified () const |
virtual void | Register () const override |
void | RemoveAllObservers () |
void | RemoveObserver (unsigned long tag) |
void | SetDebug (bool debugFlag) const |
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
virtual void | SetReferenceCount (int) override |
virtual void | UnRegister () const noexceptoverride |
virtual void | SetObjectName (std::string _arg) |
virtual const std::string & | GetObjectName () const |
Public Member Functions inherited from itk::LightObject | |
virtual void | Delete () |
virtual int | GetReferenceCount () const |
itkCloneMacro (Self) | |
void | Print (std::ostream &os, Indent indent=0) const |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::SpecialCoordinatesImage< TPixel, 3 > | |
static Pointer | New () |
Static Public Member Functions inherited from itk::ImageBase< VImageDimension > | |
static unsigned int | GetImageDimension () |
static Pointer | New () |
Static Public Member Functions inherited from itk::DataObject | |
static bool | GetGlobalReleaseDataFlag () |
static void | GlobalReleaseDataFlagOff () |
static void | GlobalReleaseDataFlagOn () |
static void | SetGlobalReleaseDataFlag (bool val) |
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 const unsigned int | ImageDimension = 3 |
Static Public Attributes inherited from itk::SpecialCoordinatesImage< TPixel, 3 > | |
static const unsigned int | ImageDimension |
Static Public Attributes inherited from itk::ImageBase< VImageDimension > | |
static const ImageDimensionType | ImageDimension = VImageDimension |
double | m_AzimuthAngularSeparation |
double | m_ElevationAngularSeparation |
double | m_RadiusSampleSize |
double | m_FirstSampleDistance |
template<typename TCoordRep > | |
bool | TransformPhysicalPointToIndex (const Point< TCoordRep, 3 > &point, IndexType &index) const |
template<typename TCoordRep , typename TIndexRep > | |
void | TransformContinuousIndexToPhysicalPoint (const ContinuousIndex< TIndexRep, 3 > &index, Point< TCoordRep, 3 > &point) const |
template<typename TCoordRep > | |
void | TransformIndexToPhysicalPoint (const IndexType &index, Point< TCoordRep, 3 > &point) const |
virtual void | SetAzimuthAngularSeparation (double _arg) |
virtual void | SetElevationAngularSeparation (double _arg) |
virtual void | SetRadiusSampleSize (double _arg) |
virtual void | SetFirstSampleDistance (double _arg) |
template<typename TCoordRep > | |
void | TransformLocalVectorToPhysicalVector (FixedArray< TCoordRep, 3 > &) const |
template<typename TCoordRep > | |
void | TransformPhysicalVectorToLocalVector (const FixedArray< TCoordRep, 3 > &, FixedArray< TCoordRep, 3 > &) const |
AccessorType | GetPixelAccessor (void) |
const AccessorType | GetPixelAccessor (void) const |
NeighborhoodAccessorFunctorType | GetNeighborhoodAccessor () |
const NeighborhoodAccessorFunctorType | GetNeighborhoodAccessor () const |
PhasedArray3DSpecialCoordinatesImage () | |
virtual | ~PhasedArray3DSpecialCoordinatesImage () override |
void | PrintSelf (std::ostream &os, Indent indent) const override |
Additional Inherited Members | |
Protected Member Functions inherited from itk::SpecialCoordinatesImage< TPixel, 3 > | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
SpecialCoordinatesImage () | |
virtual | ~SpecialCoordinatesImage () override |
Protected Member Functions inherited from itk::ImageBase< VImageDimension > | |
virtual void | ComputeIndexToPhysicalPointMatrices () |
void | ComputeOffsetTable () |
virtual void | Graft (const DataObject *data) override |
ImageBase () | |
virtual void | InitializeBufferedRegion () |
~ImageBase () override | |
OffsetValueType | FastComputeOffset (const IndexType &ind) const |
IndexType | FastComputeIndex (OffsetValueType offset) const |
Protected Member Functions inherited from itk::DataObject | |
DataObject () | |
virtual void | PropagateResetPipeline () |
virtual | ~DataObject () override |
Protected Member Functions inherited from itk::Object | |
Object () | |
bool | PrintObservers (std::ostream &os, Indent indent) const |
virtual void | SetTimeStamp (const TimeStamp &time) |
virtual | ~Object () override |
Protected Member Functions inherited from itk::LightObject | |
virtual LightObject::Pointer | InternalClone () const |
LightObject () | |
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
virtual | ~LightObject () |
Protected Attributes inherited from itk::ImageBase< VImageDimension > | |
DirectionType | m_Direction |
DirectionType | m_IndexToPhysicalPoint |
DirectionType | m_InverseDirection |
PointType | m_Origin |
DirectionType | m_PhysicalPointToIndex |
SpacingType | m_Spacing |
Protected Attributes inherited from itk::LightObject | |
AtomicInt< int > | m_ReferenceCount |
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.
Definition at line 134 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef DefaultPixelAccessor< PixelType > itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::AccessorType |
Accessor type that convert data between internal and external representations.
Definition at line 129 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef SmartPointer< const Self > itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::ConstPointer |
Definition at line 103 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef WeakPointer< const Self > itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::ConstWeakPointer |
Definition at line 104 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef Superclass::IndexType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::IndexType |
Index typedef support. An index is used to access pixel values.
Definition at line 147 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef Superclass::IndexValueType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::IndexValueType |
Definition at line 148 of file itkPhasedArray3DSpecialCoordinatesImage.h.
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.
Definition at line 123 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef Superclass::IOPixelType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::IOPixelType |
Definition at line 125 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef NeighborhoodAccessorFunctor< Self > itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::NeighborhoodAccessorFunctorType |
Typedef for the functor used to access a neighborhood of pixel pointers.
Definition at line 138 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef Superclass::OffsetType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::OffsetType |
Offset typedef support. An offset is used to access pixel values.
Definition at line 151 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef ImportImageContainer< SizeValueType, PixelType > itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PixelContainer |
Container used to store pixels in the image.
Definition at line 158 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef PixelContainer::ConstPointer itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PixelContainerConstPointer |
Definition at line 181 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef PixelContainer::Pointer itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PixelContainerPointer |
A pointer to the pixel container.
Definition at line 180 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef TPixel itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PixelType |
Pixel typedef support. Used to declare pixel type in filters or other operations.
Definition at line 110 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef SmartPointer< Self > itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::Pointer |
Definition at line 102 of file itkPhasedArray3DSpecialCoordinatesImage.h.
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.
Definition at line 177 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef Superclass::RegionType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::RegionType |
Region typedef support. A region is used to specify a subset of an image.
Definition at line 163 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef PhasedArray3DSpecialCoordinatesImage itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::Self |
Standard class typedefs
Definition at line 100 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef Superclass::SizeType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::SizeType |
Size typedef support. A size is used to define region bounds.
Definition at line 154 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef Superclass::SizeValueType itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::SizeValueType |
Definition at line 155 of file itkPhasedArray3DSpecialCoordinatesImage.h.
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.
Definition at line 171 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef SpecialCoordinatesImage< TPixel, 3 > itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::Superclass |
Definition at line 101 of file itkPhasedArray3DSpecialCoordinatesImage.h.
typedef TPixel itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::ValueType |
Typedef alias for PixelType
Definition at line 117 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
inlineprotected |
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 375 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::Math::pi.
|
inlineoverrideprotectedvirtual |
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 385 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
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::ImageBase< VImageDimension >.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::SpecialCoordinatesImage< TPixel, 3 >.
|
inline |
Return the NeighborhoodAccessor functor
Definition at line 367 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
inline |
Return the NeighborhoodAccessor functor
Definition at line 371 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
inline |
Return the Pixel Accessor object
Definition at line 359 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
inline |
Return the Pixel Accesor object
Definition at line 363 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
static |
Method for creation through the object factory.
|
overrideprotectedvirtual |
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
Reimplemented from itk::ImageBase< VImageDimension >.
|
virtual |
Set the number of radians between each azimuth unit.
|
virtual |
Set the number of radians between each elevation unit.
|
virtual |
Set the distance to add to the radius.
|
virtual |
Set the number of cartesian units between each unit along the R .
|
inline |
Get a physical point (in the space which the origin and spacing information comes from) from a continuous index (in the index space)
Definition at line 270 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::ImageRegion< VImageDimension >::GetSize().
|
inline |
Get a physical point (in the space which the origin and spacing information comes from) from a discrete index (in the index space)
Definition at line 304 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::ImageRegion< VImageDimension >::GetSize().
|
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
Definition at line 348 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
inline |
Get the continuous index from a physical point.
Returns true if the resulting index is within the image, false otherwise.
Definition at line 188 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::ImageRegion< VImageDimension >::GetSize(), itk::ImageRegion< VImageDimension >::IsInside(), and itk::Math::pi_over_2.
|
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
Definition at line 227 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::ImageRegion< VImageDimension >::GetSize(), itk::ImageRegion< VImageDimension >::IsInside(), and itk::Math::pi_over_2.
|
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
Definition at line 353 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
static |
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.
Definition at line 144 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
private |
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 389 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
private |
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 392 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
private |
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 394 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
private |
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 393 of file itkPhasedArray3DSpecialCoordinatesImage.h.