ITK  6.0.0
Insight Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes | List of all members
itk::ImageMaskSpatialObject< TDimension, TPixel > Class Template Reference

#include <itkImageMaskSpatialObject.h>

Detailed Description

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
class itk::ImageMaskSpatialObject< TDimension, TPixel >

Implementation of an image mask as spatial object.

This class derives from the ImageSpatialObject and overloads the IsInsideInObjectSpace() method. One of the common uses of this class is to serve as Mask for the Image Registration Metrics.

Note
The bounding box of an image mask is defined in such a way that any point whose nearest pixel has a non-zero value (or matches the specified mask value) is inside the bounding box. When all the pixels of an image are zero, the bounding box of the image mask is empty, and its bounds are all zero.
See also
ImageSpatialObject SpatialObject CompositeSpatialObject

Definition at line 47 of file itkImageMaskSpatialObject.h.

+ Inheritance diagram for itk::ImageMaskSpatialObject< TDimension, TPixel >:
+ Collaboration diagram for itk::ImageMaskSpatialObject< TDimension, TPixel >:

Public Types

using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = ImageMaskSpatialObject< TDimension, TPixel >
 
using SliceIteratorType = itk::ImageSliceConstIteratorWithIndex< ImageType >
 
using Superclass = ImageSpatialObject< TDimension, TPixel >
 
- Public Types inherited from itk::ImageSpatialObject< 3, unsigned char >
using ConstPointer = SmartPointer< const Self >
 
using ContinuousIndexType = ContinuousIndex< double, TDimension >
 
using ImagePointer = typename ImageType::ConstPointer
 
using ImageType = Image< PixelType, TDimension >
 
using IndexType = typename ImageType::IndexType
 
using InterpolatorType = InterpolateImageFunction< ImageType >
 
using NNInterpolatorType = NearestNeighborInterpolateImageFunction< ImageType >
 
using PixelType = unsigned char
 
using Pointer = SmartPointer< Self >
 
using ScalarType = double
 
using Self = ImageSpatialObject< TDimension, unsigned char >
 
using Superclass = SpatialObject< TDimension >
 
- Public Types inherited from itk::SpatialObject< TDimension >
using BoundingBoxPointer = typename BoundingBoxType::Pointer
 
using BoundingBoxType = BoundingBox< IdentifierType, VDimension, ScalarType, VectorContainerType >
 
using ChildrenConstListPointer = ChildrenConstListType *
 
using ChildrenConstListType = std::list< ConstPointer >
 
using ChildrenListPointer = ChildrenListType *
 
using ChildrenListType = std::list< Pointer >
 
using ConstPointer = SmartPointer< const Self >
 
using CovariantVectorType = CovariantVector< ScalarType, VDimension >
 
using DerivativeOffsetType = Vector< double, VDimension >
 
using DerivativeVectorPointer = DerivativeVectorType *
 
using DerivativeVectorType = CovariantVector< ScalarType, VDimension >
 
using IndexType = Index< VDimension >
 
using InputType = Point< ScalarType, VDimension >
 
using ObjectConstListType = std::list< ConstPointer >
 
using ObjectDimensionType = unsigned int
 
using ObjectListType = std::list< Pointer >
 
using Pointer = SmartPointer< Self >
 
using PointPointer = PointType *
 
using PointType = Point< ScalarType, VDimension >
 
using PropertyType = SpatialObjectProperty
 
using RegionType = ImageRegion< VDimension >
 
using ScalarType = double
 
using Self = SpatialObject< VDimension >
 
using SizeType = Size< VDimension >
 
using Superclass = DataObject
 
using TransformConstPointer = const TransformType *
 
using TransformPointer = typename TransformType::Pointer
 
using TransformType = AffineTransform< ScalarType, VDimension >
 
using VectorContainerType = VectorContainer< PointType >
 
using VectorPointer = VectorType *
 
using VectorType = Vector< ScalarType, VDimension >
 
- Public Types inherited from itk::DataObject
using ConstPointer = SmartPointer< const Self >
 
using DataObjectIdentifierType = std::string
 
using DataObjectPointerArraySizeType = std::vector< Pointer >::size_type
 
using Pointer = SmartPointer< Self >
 
using Self = DataObject
 
using Superclass = Object
 
- Public Types inherited from itk::Object
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = Object
 
using Superclass = LightObject
 
- Public Types inherited from itk::LightObject
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = LightObject
 

Public Member Functions

RegionType ComputeMyBoundingBoxInIndexSpace () const
 
const char * GetNameOfClass () const override
 
virtual const bool & GetUseMaskValue () const
 
bool IsInsideInObjectSpace (const PointType &point) const override
 
virtual void SetUseMaskValue (bool _arg)
 
virtual void UseMaskValueOn ()
 
virtual void SetMaskValue (PixelType _arg)
 
virtual const PixelTypeGetMaskValue () const
 
- Public Member Functions inherited from itk::ImageSpatialObject< 3, unsigned char >
void Clear () override
 
const ImageTypeGetImage () const
 
ModifiedTimeType GetMTime () const override
 
const char * GetNameOfClass () const override
 
bool IsInsideInObjectSpace (const PointType &point) const override
 
void SetImage (const ImageType *image)
 
void Update () override
 
bool ValueAtInObjectSpace (const PointType &point, double &value, unsigned int depth=0, const std::string &name="") const override
 
virtual void SetSliceNumber (IndexType _arg)
 
void SetSliceNumber (unsigned int dimension, int position)
 
virtual IndexType GetSliceNumber () const
 
int GetSliceNumber (unsigned int dimension)
 
void SetInterpolator (InterpolatorType *interpolator)
 
virtual InterpolatorTypeGetInterpolator () const
 
- Public Member Functions inherited from itk::SpatialObject< TDimension >
void AddChild (Self *pointer)
 
virtual void AddChildrenToConstList (ChildrenConstListType *childrenList, unsigned int depth=0, const std::string &name="") const
 
virtual void AddChildrenToList (ChildrenListType *childrenList, unsigned int depth=0, const std::string &name="") const
 
bool CheckIdValidity () const
 
virtual void Clear ()
 
virtual bool ComputeFamilyBoundingBox (unsigned int depth=0, const std::string &name="") const
 
void ComputeObjectToParentTransform ()
 
void CopyInformation (const DataObject *data) override
 
virtual void DerivativeAtInObjectSpace (const PointType &point, short unsigned int order, CovariantVectorType &value, unsigned int depth=0, const std::string &name="", const DerivativeOffsetType &offset=MakeFilled< DerivativeOffsetType >(1))
 
void DerivativeAtInWorldSpace (const PointType &point, short unsigned int order, CovariantVectorType &value, unsigned int depth=0, const std::string &name="", const DerivativeOffsetType &offset=MakeFilled< DerivativeOffsetType >(1))
 
bool Evaluate (const PointType &point) const
 
void FixIdValidity ()
 
bool FixParentChildHierarchyUsingParentIds ()
 
virtual const RegionTypeGetBufferedRegion () const
 
virtual ChildrenListTypeGetChildren (unsigned int depth=0, const std::string &name="") const
 
virtual std::string GetClassNameAndDimension () const
 
virtual ChildrenConstListTypeGetConstChildren (unsigned int depth=0, const std::string &name="") const
 
virtual const BoundingBoxTypeGetFamilyBoundingBoxInObjectSpace () const
 
virtual const BoundingBoxTypeGetFamilyBoundingBoxInWorldSpace () const
 
virtual const RegionTypeGetLargestPossibleRegion () const
 
unsigned int GetMaximumDepth () const
 
ModifiedTimeType GetMTime () const override
 
virtual const BoundingBoxTypeGetMyBoundingBoxInObjectSpace () const
 
virtual const BoundingBoxTypeGetMyBoundingBoxInWorldSpace () const
 
ModifiedTimeType GetMyMTime () const
 
const char * GetNameOfClass () const override
 
int GetNextAvailableId () const
 
unsigned int GetNumberOfChildren (unsigned int depth=0, const std::string &name="") const
 
SpatialObject< VDimension > * GetObjectById (int id)
 
unsigned int GetObjectDimension () const
 
virtual SelfGetParent ()
 
virtual const SelfGetParent () const
 
PropertyTypeGetProperty ()
 
const PropertyTypeGetProperty () const
 
virtual const RegionTypeGetRequestedRegion () const
 
virtual std::string GetTypeName () const
 
virtual bool HasParent () const
 
virtual bool IsEvaluableAtChildrenInObjectSpace (const PointType &point, unsigned int depth=0, const std::string &name="") const
 
virtual bool IsEvaluableAtInObjectSpace (const PointType &point, unsigned int depth=0, const std::string &name="") const
 
bool IsEvaluableAtInWorldSpace (const PointType &point, unsigned int depth=0, const std::string &name="") const
 
virtual bool IsInsideChildrenInObjectSpace (const PointType &point, unsigned int depth=0, const std::string &name="") const
 
virtual bool IsInsideInObjectSpace (const PointType &point) const
 
bool IsInsideInObjectSpace (const PointType &point, unsigned int depth, const std::string &name="") const
 
bool IsInsideInWorldSpace (const PointType &point) const
 
bool IsInsideInWorldSpace (const PointType &point, unsigned int depth, const std::string &name="") const
 
void RemoveAllChildren (unsigned int depth=MaximumDepth)
 
bool RemoveChild (Self *pointer)
 
bool RequestedRegionIsOutsideOfTheBufferedRegion () override
 
virtual void SetBufferedRegion (const RegionType &region)
 
void SetChildren (ChildrenListType &children)
 
virtual void SetLargestPossibleRegion (const RegionType &region)
 
void SetParent (Self *parent)
 
void SetRequestedRegion (const DataObject *data) override
 
virtual void SetRequestedRegion (const RegionType &region)
 
void SetRequestedRegionToLargestPossibleRegion () override
 
virtual void SetTypeName (std::string _arg)
 
void Update () override
 
void UpdateOutputInformation () override
 
virtual bool ValueAtChildrenInObjectSpace (const PointType &point, double &value, unsigned int depth=0, const std::string &name="") const
 
virtual bool ValueAtInObjectSpace (const PointType &point, double &value, unsigned int depth=0, const std::string &name="") const
 
bool ValueAtInWorldSpace (const PointType &point, double &value, unsigned int depth=0, const std::string &name="") const
 
bool VerifyRequestedRegion () override
 
void SetId (int id)
 
virtual const int & GetId () const
 
void SetProperty (const PropertyType &property)
 
void SetObjectToWorldTransform (const TransformType *transform)
 
virtual TransformTypeGetModifiableObjectToWorldTransform ()
 
const TransformTypeGetObjectToWorldTransformInverse () const
 
void SetObjectToParentTransform (const TransformType *transform)
 
virtual TransformTypeGetModifiableObjectToParentTransform ()
 
const TransformTypeGetObjectToParentTransformInverse () const
 
virtual void SetDefaultInsideValue (double _arg)
 
virtual double GetDefaultInsideValue () const
 
virtual void SetDefaultOutsideValue (double _arg)
 
virtual double GetDefaultOutsideValue () const
 
virtual void SetParentId (int _arg)
 
virtual const int & GetParentId () const
 
- Public Member Functions inherited from itk::DataObject
virtual void CopyInformation (const DataObject *)
 
virtual void DataHasBeenGenerated ()
 
void DisconnectPipeline ()
 
bool GetDataReleased () const
 
const char * GetNameOfClass () const override
 
virtual const bool & GetReleaseDataFlag () const
 
SmartPointer< ProcessObjectGetSource () const
 
DataObjectPointerArraySizeType GetSourceOutputIndex () const
 
const DataObjectIdentifierTypeGetSourceOutputName () const
 
virtual ModifiedTimeType GetUpdateMTime () const
 
virtual void Graft (const DataObject *)
 
virtual void Initialize ()
 
virtual void PrepareForNewData ()
 
virtual void PropagateRequestedRegion ()
 
void ReleaseData ()
 
virtual void ReleaseDataFlagOn ()
 
virtual bool RequestedRegionIsOutsideOfTheBufferedRegion ()
 
virtual void ResetPipeline ()
 
void SetReleaseDataFlag (bool flag)
 
virtual void SetRequestedRegion (const DataObject *)
 
virtual void SetRequestedRegionToLargestPossibleRegion ()
 
bool ShouldIReleaseData () const
 
virtual void Update ()
 
virtual void UpdateOutputData ()
 
virtual void UpdateOutputInformation ()
 
void UpdateSource () const
 
virtual bool VerifyRequestedRegion ()
 
void SetPipelineMTime (ModifiedTimeType time)
 
virtual const ModifiedTimeTypeGetPipelineMTime () const
 
virtual void SetRealTimeStamp (RealTimeStamp _arg)
 
virtual const RealTimeStampGetRealTimeStamp () 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
 
CommandGetCommand (unsigned long tag)
 
bool GetDebug () const
 
MetaDataDictionaryGetMetaDataDictionary ()
 
const MetaDataDictionaryGetMetaDataDictionary () const
 
virtual ModifiedTimeType GetMTime () const
 
const char * GetNameOfClass () const override
 
virtual const TimeStampGetTimeStamp () 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 Pointer CreateAnother () const
 
virtual void Delete ()
 
virtual const char * GetNameOfClass () const
 
virtual int GetReferenceCount () const
 
void Print (std::ostream &os, Indent indent=0) const
 
virtual void Register () const
 
virtual void SetReferenceCount (int)
 
virtual void UnRegister () const noexcept
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::ImageSpatialObject< 3, unsigned char >
static Pointer New ()
 
- Static Public Member Functions inherited from itk::SpatialObject< TDimension >
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 ()
 

Protected Member Functions

void ComputeMyBoundingBox () override
 
 ImageMaskSpatialObject ()
 
LightObject::Pointer InternalClone () const override
 
 ~ImageMaskSpatialObject () override=default
 
- Protected Member Functions inherited from itk::ImageSpatialObject< 3, unsigned char >
void ComputeMyBoundingBox () override
 
 ImageSpatialObject ()
 
LightObject::Pointer InternalClone () const override
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ~ImageSpatialObject () override
 
- Protected Member Functions inherited from itk::SpatialObject< TDimension >
virtual void ComputeMyBoundingBox ()
 
BoundingBoxTypeGetModifiableMyBoundingBoxInObjectSpace ()
 
LightObject::Pointer InternalClone () const override
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
void ProtectedComputeObjectToWorldTransform ()
 
 SpatialObject ()=default
 
 ~SpatialObject () override
 
- Protected Member Functions inherited from itk::DataObject
 DataObject ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
virtual void PropagateResetPipeline ()
 
 ~DataObject () override
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
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 PrintSelf (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual ~LightObject ()
 

Private Attributes

PixelType m_MaskValue { NumericTraits<PixelType>::OneValue() }
 
bool m_UseMaskValue { false }
 

Additional Inherited Members

- Static Public Attributes inherited from itk::ImageSpatialObject< 3, unsigned char >
static constexpr unsigned int ObjectDimension
 
- Static Public Attributes inherited from itk::SpatialObject< TDimension >
static constexpr unsigned int MaximumDepth
 
static constexpr ObjectDimensionType ObjectDimension
 
- Protected Attributes inherited from itk::LightObject
std::atomic< int > m_ReferenceCount {}
 

Member Typedef Documentation

◆ ConstPointer

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
using itk::ImageMaskSpatialObject< TDimension, TPixel >::ConstPointer = SmartPointer<const Self>

Definition at line 55 of file itkImageMaskSpatialObject.h.

◆ Pointer

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
using itk::ImageMaskSpatialObject< TDimension, TPixel >::Pointer = SmartPointer<Self>

Definition at line 54 of file itkImageMaskSpatialObject.h.

◆ Self

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
using itk::ImageMaskSpatialObject< TDimension, TPixel >::Self = ImageMaskSpatialObject<TDimension, TPixel>

Definition at line 52 of file itkImageMaskSpatialObject.h.

◆ SliceIteratorType

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
using itk::ImageMaskSpatialObject< TDimension, TPixel >::SliceIteratorType = itk::ImageSliceConstIteratorWithIndex<ImageType>

Definition at line 69 of file itkImageMaskSpatialObject.h.

◆ Superclass

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
using itk::ImageMaskSpatialObject< TDimension, TPixel >::Superclass = ImageSpatialObject<TDimension, TPixel>

Definition at line 53 of file itkImageMaskSpatialObject.h.

Constructor & Destructor Documentation

◆ ImageMaskSpatialObject()

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
itk::ImageMaskSpatialObject< TDimension, TPixel >::ImageMaskSpatialObject ( )
protected

◆ ~ImageMaskSpatialObject()

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
itk::ImageMaskSpatialObject< TDimension, TPixel >::~ImageMaskSpatialObject ( )
overrideprotecteddefault

Member Function Documentation

◆ ComputeMyBoundingBox()

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
void itk::ImageMaskSpatialObject< TDimension, TPixel >::ComputeMyBoundingBox ( )
overrideprotectedvirtual

Get the boundaries of a specific object. This function needs to be called every time one of the object's components is changed.

Reimplemented from itk::SpatialObject< TDimension >.

◆ ComputeMyBoundingBoxInIndexSpace()

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
RegionType itk::ImageMaskSpatialObject< TDimension, TPixel >::ComputeMyBoundingBoxInIndexSpace ( ) const

Computes the bounding box of the image mask, in the index space of the image. The bounding box is returned as an image region. Each call to this function will recompute the region. This function is useful in cases, where you may have a mask image resulting from say a segmentation and you want to get the smallest box region that encapsulates the mask image.

Note
This function is introduced with ITK 5.0, replacing GetAxisAlignedBoundingBoxRegion().

◆ GetMaskValue()

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
virtual const PixelType & itk::ImageMaskSpatialObject< TDimension, TPixel >::GetMaskValue ( ) const
virtual

Specify the value in the mask image that defines the object. You must also call SetUseMaskValue(true) to enable the use of the mask value, otherwise the value is ignored and any non-zero value in the mask is used to define the object.

◆ GetNameOfClass()

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
const char * itk::ImageMaskSpatialObject< TDimension, TPixel >::GetNameOfClass ( ) const
overridevirtual
See also
LightObject::GetNameOfClass()

Reimplemented from itk::DataObject.

◆ GetUseMaskValue()

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
virtual const bool & itk::ImageMaskSpatialObject< TDimension, TPixel >::GetUseMaskValue ( ) const
virtual

◆ InternalClone()

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
LightObject::Pointer itk::ImageMaskSpatialObject< TDimension, TPixel >::InternalClone ( ) const
overrideprotectedvirtual

Actual implementation of the clone method. This method should be reimplemented in subclasses to clone the extra required parameters.

Reimplemented from itk::LightObject.

◆ IsInsideInObjectSpace()

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
bool itk::ImageMaskSpatialObject< TDimension, TPixel >::IsInsideInObjectSpace ( const PointType point) const
overridevirtual

Test whether a point is inside the object.

A point is inside the image mask when the value of its nearest pixel is non-zero or matches the Mask_Value value.

For computational speed purposes, it is faster if the method does not check the name of the class and the current depth.

Reimplemented from itk::SpatialObject< TDimension >.

◆ New()

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
static Pointer itk::ImageMaskSpatialObject< TDimension, TPixel >::New ( )
static

Method for creation through the object factory.

◆ SetMaskValue()

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
virtual void itk::ImageMaskSpatialObject< TDimension, TPixel >::SetMaskValue ( PixelType  _arg)
virtual

Specify the value in the mask image that defines the object. You must also call SetUseMaskValue(true) to enable the use of the mask value, otherwise the value is ignored and any non-zero value in the mask is used to define the object.

◆ SetUseMaskValue()

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
virtual void itk::ImageMaskSpatialObject< TDimension, TPixel >::SetUseMaskValue ( bool  _arg)
virtual

◆ UseMaskValueOn()

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
virtual void itk::ImageMaskSpatialObject< TDimension, TPixel >::UseMaskValueOn ( )
virtual

Member Data Documentation

◆ m_MaskValue

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
PixelType itk::ImageMaskSpatialObject< TDimension, TPixel >::m_MaskValue { NumericTraits<PixelType>::OneValue() }
private

Definition at line 139 of file itkImageMaskSpatialObject.h.

◆ m_UseMaskValue

template<unsigned int TDimension = 3, typename TPixel = unsigned char>
bool itk::ImageMaskSpatialObject< TDimension, TPixel >::m_UseMaskValue { false }
private

Definition at line 138 of file itkImageMaskSpatialObject.h.


The documentation for this class was generated from the following file: