ITK
6.0.0
Insight 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 | |
const char * | GetNameOfClass () const override |
NeighborhoodAccessorFunctorType | GetNeighborhoodAccessor () |
const NeighborhoodAccessorFunctorType | GetNeighborhoodAccessor () const |
AccessorType | GetPixelAccessor () |
const AccessorType | GetPixelAccessor () const |
virtual void | SetAzimuthAngularSeparation (double _arg) |
virtual void | SetElevationAngularSeparation (double _arg) |
virtual void | SetFirstSampleDistance (double _arg) |
virtual void | SetRadiusSampleSize (double _arg) |
template<typename TCoordinate > | |
void | TransformLocalVectorToPhysicalVector (FixedArray< TCoordinate, 3 > &) const |
template<typename TCoordinate , typename TIndexRep > | |
bool | TransformPhysicalPointToContinuousIndex (const Point< TCoordinate, 3 > &point, ContinuousIndex< TIndexRep, 3 > &index) const |
template<typename TCoordinate > | |
bool | TransformPhysicalPointToIndex (const Point< TCoordinate, 3 > &point, IndexType &index) const |
template<typename TCoordinate > | |
void | TransformPhysicalVectorToLocalVector (const FixedArray< TCoordinate, 3 > &, FixedArray< TCoordinate, 3 > &) const |
template<typename TIndexRep , typename TCoordinate > | |
ContinuousIndex< TIndexRep, 3 > | TransformPhysicalPointToContinuousIndex (const Point< TCoordinate, 3 > &point) const |
template<typename TCoordinate > | |
IndexType | TransformPhysicalPointToIndex (const Point< TCoordinate, 3 > &point) const |
template<typename TCoordinate , typename TIndexRep > | |
void | TransformContinuousIndexToPhysicalPoint (const ContinuousIndex< TIndexRep, 3 > &index, Point< TCoordinate, 3 > &point) const |
template<typename TCoordinate , typename TIndexRep > | |
Point< TCoordinate, 3 > | TransformContinuousIndexToPhysicalPoint (const ContinuousIndex< TIndexRep, 3 > &index) const |
template<typename TCoordinate > | |
void | TransformIndexToPhysicalPoint (const IndexType &index, Point< TCoordinate, 3 > &point) const |
template<typename TCoordinate > | |
Point< TCoordinate, 3 > | TransformIndexToPhysicalPoint (const IndexType &index) const |
Public Member Functions inherited from itk::SpecialCoordinatesImage< TPixel, 3 > | |
void | Allocate (bool initialize=false) override |
void | FillBuffer (const TPixel &value) |
const char * | GetNameOfClass () const override |
TPixel & | GetPixel (const IndexType &index) |
const TPixel & | GetPixel (const IndexType &index) const |
AccessorType | GetPixelAccessor () |
const AccessorType | GetPixelAccessor () const |
PixelContainer * | GetPixelContainer () |
const PixelContainer * | GetPixelContainer () const |
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 |
void | SetSpacing (const SpacingType &) override |
void | SetSpacing (const double[VImageDimension]) override |
void | SetSpacing (const float[VImageDimension]) override |
void | SetOrigin (const PointType) override |
void | SetOrigin (const double[VImageDimension]) override |
void | SetOrigin (const float[VImageDimension]) override |
Public Member Functions inherited from itk::ImageBase< VImageDimension > | |
void | AllocateInitialized () |
OffsetValueType | ComputeOffset (const IndexType &ind) const |
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 *image) |
bool | IsCongruentImageGeometry (const ImageBase *otherImage, double coordinateTolerance, double directionTolerance) const |
bool | IsSameImageGeometryAs (const ImageBase *otherImage, double coordinateTolerance=DefaultImageCoordinateTolerance, double directionTolerance=DefaultImageDirectionTolerance) const |
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) |
void | SetRequestedRegion (const DataObject *data) override |
virtual void | SetRequestedRegion (const RegionType ®ion) |
void | SetRequestedRegionToLargestPossibleRegion () override |
template<typename TCoordinate > | |
void | TransformLocalVectorToPhysicalVector (const FixedArray< TCoordinate, VImageDimension > &inputGradient, FixedArray< TCoordinate, VImageDimension > &outputGradient) const |
template<typename TIndexRep , typename TCoordinate > | |
ContinuousIndex< TIndexRep, VImageDimension > | TransformPhysicalPointToContinuousIndex (const Point< TCoordinate, VImageDimension > &point) const |
template<typename TCoordinate , typename TIndexRep > | |
bool | TransformPhysicalPointToContinuousIndex (const Point< TCoordinate, VImageDimension > &point, ContinuousIndex< TIndexRep, VImageDimension > &index) const |
template<typename TCoordinate > | |
bool | TransformPhysicalPointToIndex (const Point< TCoordinate, VImageDimension > &point, IndexType &index) const |
template<typename TCoordinate > | |
void | TransformPhysicalVectorToLocalVector (const FixedArray< TCoordinate, VImageDimension > &inputGradient, FixedArray< TCoordinate, VImageDimension > &outputGradient) const |
void | UpdateOutputData () override |
void | UpdateOutputInformation () override |
bool | VerifyRequestedRegion () override |
virtual void | SetRegions (const RegionType ®ion) |
const OffsetValueType * | GetOffsetTable () const |
IndexType | ComputeIndex (OffsetValueType offset) const |
template<typename TCoordinate > | |
IndexType | TransformPhysicalPointToIndex (const Point< TCoordinate, VImageDimension > &point) const |
template<typename TCoordinate , typename TIndexRep > | |
void | TransformContinuousIndexToPhysicalPoint (const ContinuousIndex< TIndexRep, VImageDimension > &index, Point< TCoordinate, VImageDimension > &point) const |
template<typename TCoordinate , typename TIndexRep > | |
Point< TCoordinate, VImageDimension > | TransformContinuousIndexToPhysicalPoint (const ContinuousIndex< TIndexRep, VImageDimension > &index) const |
template<typename TCoordinate > | |
void | TransformIndexToPhysicalPoint (const IndexType &index, Point< TCoordinate, VImageDimension > &point) const |
template<typename TCoordinate > | |
Point< TCoordinate, VImageDimension > | TransformIndexToPhysicalPoint (const IndexType &index) const |
template<typename TVector > | |
TVector | TransformLocalVectorToPhysicalVector (const TVector &inputGradient) const |
template<typename TVector > | |
TVector | TransformPhysicalVectorToLocalVector (const TVector &inputGradient) 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 |
SmartPointer< ProcessObject > | GetSource () const |
DataObjectPointerArraySizeType | GetSourceOutputIndex () const |
const DataObjectIdentifierType & | GetSourceOutputName () const |
virtual ModifiedTimeType | GetUpdateMTime () const |
virtual void | PrepareForNewData () |
virtual void | PropagateRequestedRegion () |
void | ReleaseData () |
virtual void | ReleaseDataFlagOn () |
virtual void | ResetPipeline () |
void | SetReleaseDataFlag (bool flag) |
bool | ShouldIReleaseData () const |
virtual void | Update () |
void | UpdateSource () const |
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 *cmd) const |
unsigned long | AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const |
LightObject::Pointer | CreateAnother () const override |
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 |
void | Register () const override |
void | RemoveAllObservers () |
void | RemoveObserver (unsigned long tag) const |
void | SetDebug (bool debugFlag) const |
void | SetReferenceCount (int) override |
void | UnRegister () const noexcept override |
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
virtual void | SetObjectName (std::string _arg) |
virtual const std::string & | GetObjectName () const |
Public Member Functions inherited from itk::LightObject | |
Pointer | Clone () const |
virtual void | Delete () |
virtual int | GetReferenceCount () const |
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 constexpr unsigned int | GetImageDimension () |
static Pointer | New () |
Static Public Member Functions inherited from itk::DataObject | |
static bool | GetGlobalReleaseDataFlag () |
static void | GlobalReleaseDataFlagOff () |
static void | GlobalReleaseDataFlagOn () |
static Pointer | New () |
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 val) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = 3 |
Static Public Attributes inherited from itk::SpecialCoordinatesImage< TPixel, 3 > | |
static constexpr unsigned int | ImageDimension |
Static Public Attributes inherited from itk::ImageBase< VImageDimension > | |
static constexpr ImageDimensionType | ImageDimension = VImageDimension |
Protected Member Functions | |
PhasedArray3DSpecialCoordinatesImage () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~PhasedArray3DSpecialCoordinatesImage () override=default | |
Protected Member Functions inherited from itk::SpecialCoordinatesImage< TPixel, 3 > | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
SpecialCoordinatesImage ()=default | |
~SpecialCoordinatesImage () override=default | |
Protected Member Functions inherited from itk::ImageBase< VImageDimension > | |
virtual void | ComputeIndexToPhysicalPointMatrices () |
void | ComputeOffsetTable () |
void | Graft (const DataObject *data) override |
ImageBase ()=default | |
virtual void | InitializeBufferedRegion () |
~ImageBase () override=default | |
OffsetValueType | FastComputeOffset (const IndexType &ind) const |
IndexType | FastComputeIndex (OffsetValueType offset) const |
Protected Member Functions inherited from itk::DataObject | |
DataObject () | |
virtual void | PropagateResetPipeline () |
~DataObject () override | |
Protected Member Functions inherited from itk::Object | |
Object () | |
bool | PrintObservers (std::ostream &os, Indent indent) const |
virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
~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 () |
Private Attributes | |
double | m_AzimuthAngularSeparation {} |
double | m_ElevationAngularSeparation {} |
double | m_FirstSampleDistance {} |
double | m_RadiusSampleSize {} |
Additional Inherited Members | |
Protected Attributes inherited from itk::ImageBase< VImageDimension > | |
SpacingType | m_Spacing { MakeFilled<SpacingType>(1.0) } |
PointType | m_Origin {} |
DirectionType | m_Direction { DirectionType::GetIdentity() } |
DirectionType | m_InverseDirection { DirectionType::GetIdentity() } |
DirectionType | m_IndexToPhysicalPoint { DirectionType::GetIdentity() } |
DirectionType | m_PhysicalPointToIndex { DirectionType::GetIdentity() } |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount {} |
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::AccessorFunctorType = DefaultPixelAccessorFunctor<Self> |
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 135 of file itkPhasedArray3DSpecialCoordinatesImage.h.
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::AccessorType = DefaultPixelAccessor<PixelType> |
Accessor type that convert data between internal and external representations.
Definition at line 130 of file itkPhasedArray3DSpecialCoordinatesImage.h.
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::ConstPointer = SmartPointer<const Self> |
Definition at line 104 of file itkPhasedArray3DSpecialCoordinatesImage.h.
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::ConstWeakPointer = WeakPointer<const Self> |
Definition at line 105 of file itkPhasedArray3DSpecialCoordinatesImage.h.
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::InternalPixelType = TPixel |
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 124 of file itkPhasedArray3DSpecialCoordinatesImage.h.
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::NeighborhoodAccessorFunctorType = NeighborhoodAccessorFunctor<Self> |
Typedef for the functor used to access a neighborhood of pixel pointers.
Definition at line 139 of file itkPhasedArray3DSpecialCoordinatesImage.h.
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PixelContainer = ImportImageContainer<SizeValueType, PixelType> |
Container used to store pixels in the image.
Definition at line 159 of file itkPhasedArray3DSpecialCoordinatesImage.h.
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PixelContainerConstPointer = typename PixelContainer::ConstPointer |
Definition at line 182 of file itkPhasedArray3DSpecialCoordinatesImage.h.
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PixelContainerPointer = typename PixelContainer::Pointer |
A pointer to the pixel container.
Definition at line 181 of file itkPhasedArray3DSpecialCoordinatesImage.h.
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::PixelType = TPixel |
Pixel type alias support Used to declare pixel type in filters or other operations.
Definition at line 115 of file itkPhasedArray3DSpecialCoordinatesImage.h.
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::Pointer = SmartPointer<Self> |
Definition at line 103 of file itkPhasedArray3DSpecialCoordinatesImage.h.
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::Self = PhasedArray3DSpecialCoordinatesImage |
Standard class type aliases
Definition at line 101 of file itkPhasedArray3DSpecialCoordinatesImage.h.
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::Superclass = SpecialCoordinatesImage<TPixel, 3> |
Definition at line 102 of file itkPhasedArray3DSpecialCoordinatesImage.h.
using itk::PhasedArray3DSpecialCoordinatesImage< TPixel >::ValueType = TPixel |
Typedef alias for PixelType
Definition at line 118 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
inlineprotected |
Definition at line 414 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::Math::pi.
|
overrideprotecteddefault |
|
overridevirtual |
Reimplemented from itk::ImageBase< VImageDimension >.
|
inline |
Return the NeighborhoodAccessor functor
Definition at line 401 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
inline |
Return the NeighborhoodAccessor functor
Definition at line 408 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
inline |
Return the Pixel Accessor object
Definition at line 387 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
inline |
Return the Pixel Accesor object
Definition at line 394 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
static |
Method for creation through the object factory.
|
overrideprotectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
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 |
Returns a physical point from a continuous index.
Definition at line 315 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::point().
|
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 289 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::ImageRegion< VImageDimension >::GetSize(), and itk::point().
|
inline |
Returns a physical point from a discrete index.
Definition at line 355 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::point().
|
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 330 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::ImageRegion< VImageDimension >::GetSize(), and itk::point().
|
inline |
Definition at line 377 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
inline |
Returns the continuous index from a physical point
Definition at line 187 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::ImageRegion< VImageDimension >::GetSize(), itk::Math::pi_over_2, and itk::point().
|
inline |
Get the continuous index from a physical point.
Returns true if the resulting index is within the image, false otherwise.
bool
return value, please call the corresponding overload instead, which has only one parameter (the point), and returns the continuous index.Definition at line 222 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::point().
|
inline |
Returns the index (discrete) from a physical point. Floating point index results are truncated to integers.
Definition at line 238 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::ImageRegion< VImageDimension >::GetSize(), itk::Math::pi_over_2, and itk::point().
|
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
bool
return value, please call the corresponding overload instead, which has only one parameter (the point), and returns the index.Definition at line 273 of file itkPhasedArray3DSpecialCoordinatesImage.h.
References itk::point().
|
inline |
Definition at line 382 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
staticconstexpr |
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 145 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
private |
Definition at line 429 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
private |
Definition at line 430 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
private |
Definition at line 432 of file itkPhasedArray3DSpecialCoordinatesImage.h.
|
private |
Definition at line 431 of file itkPhasedArray3DSpecialCoordinatesImage.h.