ITK  5.2.0
Insight Toolkit
Public Types | Public Member Functions | List of all members
itk::AnnulusOperator< TPixel, TDimension, TAllocator > Class Template Reference

#include <itkAnnulusOperator.h>

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

Public Types

using OffsetType = typename Superclass::OffsetType
 
using Self = AnnulusOperator
 
using SizeType = typename Superclass::SizeType
 
using SpacingType = Vector< double, TDimension >
 
using Superclass = NeighborhoodOperator< TPixel, TDimension, TAllocator >
 
- Public Types inherited from itk::NeighborhoodOperator< TPixel, TDimension, TAllocator >
using PixelType = TPixel
 
using Self = NeighborhoodOperator
 
using SizeType = typename Superclass::SizeType
 
using SliceIteratorType = SliceIterator< TPixel, Self >
 
using Superclass = Neighborhood< TPixel, VDimension, TAllocator >
 
using PixelRealType = typename NumericTraits< TPixel >::RealType
 
- Public Types inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
using AllocatorType = TAllocator
 
using ConstIterator = typename AllocatorType::const_iterator
 
using DimensionValueType = unsigned int
 
using Iterator = typename AllocatorType::iterator
 
using NeighborIndexType = SizeValueType
 
using OffsetType = Offset< VDimension >
 
using PixelType = TPixel
 
using RadiusType = ::itk::Size< VDimension >
 
using Self = Neighborhood
 
using SizeType = ::itk::Size< VDimension >
 
using SizeValueType = typename SizeType::SizeValueType
 
using SliceIteratorType = SliceIterator< TPixel, Self >
 

Public Member Functions

void CreateOperator ()
 
virtual const char * GetNameOfClass () const
 
- Public Member Functions inherited from itk::NeighborhoodOperator< TPixel, TDimension, TAllocator >
virtual void CreateDirectional ()
 
virtual void CreateToRadius (const SizeType &)
 
virtual void CreateToRadius (const SizeValueType)
 
virtual void FlipAxes ()
 
unsigned long GetDirection () const
 
void SetDirection (const unsigned long &direction)
 
void PrintSelf (std::ostream &os, Indent i) const override
 
void ScaleCoefficients (PixelRealType)
 
- Public Member Functions inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
 itkTypeMacroNoParent (Neighborhood)
 
 Neighborhood ()
 
virtual ~Neighborhood ()=default
 
 Neighborhood (const Self &other)
 
 Neighborhood (Self &&)=default
 
Selfoperator= (const Self &other)
 
Selfoperator= (Self &&)=default
 
bool operator== (const Self &other) const
 
bool operator!= (const Self &other) const
 
const SizeType GetRadius () const
 
SizeValueType GetRadius (DimensionValueType n) const
 
SizeValueType GetSize (DimensionValueType n) const
 
SizeType GetSize () const
 
OffsetValueType GetStride (DimensionValueType axis) const
 
Iterator End ()
 
Iterator Begin ()
 
ConstIterator End () const
 
ConstIterator Begin () const
 
NeighborIndexType Size () const
 
TPixel & operator[] (NeighborIndexType i)
 
const TPixel & operator[] (NeighborIndexType i) const
 
TPixel & GetElement (NeighborIndexType i)
 
TPixel GetCenterValue () const
 
void SetRadius (const SizeType &)
 
void SetRadius (const SizeValueType *rad)
 
void SetRadius (const SizeValueType)
 
void Print (std::ostream &os) const
 
AllocatorTypeGetBufferReference ()
 
const AllocatorTypeGetBufferReference () const
 
TPixel & operator[] (const OffsetType &o)
 
const TPixel & operator[] (const OffsetType &o) const
 
OffsetType GetOffset (NeighborIndexType i) const
 
virtual NeighborIndexType GetNeighborhoodIndex (const OffsetType &) const
 
NeighborIndexType GetCenterNeighborhoodIndex () const
 
std::slice GetSlice (unsigned int) const
 
using CoefficientVector = typename Superclass::CoefficientVector
 
using PixelType = typename Superclass::PixelType
 
double m_InnerRadius { 1.0 }
 
double m_Thickness { 1.0 }
 
bool m_Normalize { false }
 
bool m_BrightCenter { false }
 
PixelType m_InteriorValue { NumericTraits<PixelType>::ZeroValue() }
 
PixelType m_AnnulusValue { NumericTraits<PixelType>::OneValue() }
 
PixelType m_ExteriorValue { NumericTraits<PixelType>::ZeroValue() }
 
SpacingType m_Spacing { 1.0 }
 
void SetInnerRadius (double r)
 
double GetInnerRadius () const
 
void SetThickness (double t)
 
double GetThickness () const
 
void SetSpacing (SpacingType &s)
 
const SpacingTypeGetSpacing () const
 
void SetNormalize (bool b)
 
bool GetNormalize () const
 
void NormalizeOn ()
 
void NormalizeOff ()
 
void SetBrightCenter (bool b)
 
bool GetBrightCenter () const
 
void BrightCenterOn ()
 
void BrightCenterOff ()
 
void SetInteriorValue (TPixel v)
 
TPixel GetInteriorValue () const
 
void SetAnnulusValue (TPixel v)
 
TPixel GetAnnulusValue () const
 
void SetExteriorValue (TPixel v)
 
TPixel GetExteriorValue () const
 
void PrintSelf (std::ostream &os, Indent i) const override
 
CoefficientVector GenerateCoefficients () override
 
void Fill (const CoefficientVector &c) override
 

Additional Inherited Members

- Static Public Attributes inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
static constexpr unsigned int NeighborhoodDimension = VDimension
 
- Protected Types inherited from itk::NeighborhoodOperator< TPixel, TDimension, TAllocator >
using CoefficientVector = std::vector< PixelRealType >
 
- Protected Member Functions inherited from itk::NeighborhoodOperator< TPixel, TDimension, TAllocator >
virtual void Fill (const CoefficientVector &)=0
 
virtual void FillCenteredDirectional (const CoefficientVector &)
 
void InitializeToZero ()
 
- Protected Member Functions inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
void SetSize ()
 
virtual void Allocate (NeighborIndexType i)
 
virtual void ComputeNeighborhoodStrideTable ()
 
virtual void ComputeNeighborhoodOffsetTable ()
 

Detailed Description

template<typename TPixel, unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
class itk::AnnulusOperator< TPixel, TDimension, TAllocator >

A NeighborhoodOperator for performing a matched filtering with an annulus (two concentric circles, spheres, hyperspheres, etc.)

AnnulusOperator defines a non-directional NeighborhoodOperator representing two concentric circles, spheres, hyperspheres, etc. The inner radius and the thickness of the annulus can be specified.

The values for the annulus can be specified in a variety of manners:

1) The values for the interior of the annulus (interior of inner circle), the values for annulus (the region between the inner and outer circle), and the values for the exterior of the annulus can be specified. This mode is useful in correlation based matched filter applications. For instance, defining a hollow (or even filled) circle.

2) The values can defined automatically for normalized correlation. The values in the kernel will be defined to have mean zero and norm 1. The area outside the annulus will have values of zero. In this mode, you can also specify whether you want the center of the annulus to be bright (intensity > 0) or dark (intensity < 0).

1) Set the annulus parameters: InnerRadius and Thickness 2) Set the intensities to use for interior, wall, and exterior kernel positions for correlation based operations or call NormalizeOn() to define kernel values automatically for use in normalized correlation. 3) If NormalizedOn(), indicate whether you want the center of the annulus to be bright or dark. 4) call CreateOperator()

Note
AnnulusOperator does not have any user-declared "special member function", following the C++ Rule of Zero: the compiler will generate them if necessary.
See also
NeighborhoodOperator
Neighborhood
Examples
SphinxExamples/src/Core/Common/DemonstrateAllOperators/Code.cxx.

Definition at line 72 of file itkAnnulusOperator.h.

Member Typedef Documentation

◆ CoefficientVector

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
using itk::AnnulusOperator< TPixel, TDimension, TAllocator >::CoefficientVector = typename Superclass::CoefficientVector
protected

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 234 of file itkAnnulusOperator.h.

◆ OffsetType

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
using itk::AnnulusOperator< TPixel, TDimension, TAllocator >::OffsetType = typename Superclass::OffsetType

Definition at line 82 of file itkAnnulusOperator.h.

◆ PixelType

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
using itk::AnnulusOperator< TPixel, TDimension, TAllocator >::PixelType = typename Superclass::PixelType
protected

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 235 of file itkAnnulusOperator.h.

◆ Self

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
using itk::AnnulusOperator< TPixel, TDimension, TAllocator >::Self = AnnulusOperator

Standard type alias

Definition at line 77 of file itkAnnulusOperator.h.

◆ SizeType

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
using itk::AnnulusOperator< TPixel, TDimension, TAllocator >::SizeType = typename Superclass::SizeType

Additional type alias

Definition at line 81 of file itkAnnulusOperator.h.

◆ SpacingType

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
using itk::AnnulusOperator< TPixel, TDimension, TAllocator >::SpacingType = Vector<double, TDimension>

Definition at line 83 of file itkAnnulusOperator.h.

◆ Superclass

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
using itk::AnnulusOperator< TPixel, TDimension, TAllocator >::Superclass = NeighborhoodOperator<TPixel, TDimension, TAllocator>

Definition at line 78 of file itkAnnulusOperator.h.

Member Function Documentation

◆ BrightCenterOff()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::BrightCenterOff ( )
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 177 of file itkAnnulusOperator.h.

◆ BrightCenterOn()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::BrightCenterOn ( )
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 172 of file itkAnnulusOperator.h.

◆ CreateOperator()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::CreateOperator ( )

This function is called to create the operator. The radius of the operator is determine automatically.

◆ Fill()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::Fill ( const CoefficientVector c)
overrideprotected

Arranges coefficients spatially in the memory buffer.

◆ GenerateCoefficients()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
CoefficientVector itk::AnnulusOperator< TPixel, TDimension, TAllocator >::GenerateCoefficients ( )
overrideprotectedvirtual

Calculates operator coefficients.

Implements itk::NeighborhoodOperator< TPixel, TDimension, TAllocator >.

◆ GetAnnulusValue()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
TPixel itk::AnnulusOperator< TPixel, TDimension, TAllocator >::GetAnnulusValue ( ) const
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 203 of file itkAnnulusOperator.h.

◆ GetBrightCenter()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
bool itk::AnnulusOperator< TPixel, TDimension, TAllocator >::GetBrightCenter ( ) const
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 167 of file itkAnnulusOperator.h.

◆ GetExteriorValue()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
TPixel itk::AnnulusOperator< TPixel, TDimension, TAllocator >::GetExteriorValue ( ) const
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 213 of file itkAnnulusOperator.h.

◆ GetInnerRadius()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
double itk::AnnulusOperator< TPixel, TDimension, TAllocator >::GetInnerRadius ( ) const
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 100 of file itkAnnulusOperator.h.

◆ GetInteriorValue()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
TPixel itk::AnnulusOperator< TPixel, TDimension, TAllocator >::GetInteriorValue ( ) const
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 193 of file itkAnnulusOperator.h.

◆ GetNameOfClass()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
virtual const char* itk::AnnulusOperator< TPixel, TDimension, TAllocator >::GetNameOfClass ( ) const
virtual

◆ GetNormalize()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
bool itk::AnnulusOperator< TPixel, TDimension, TAllocator >::GetNormalize ( ) const
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 143 of file itkAnnulusOperator.h.

◆ GetSpacing()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
const SpacingType& itk::AnnulusOperator< TPixel, TDimension, TAllocator >::GetSpacing ( ) const
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 129 of file itkAnnulusOperator.h.

◆ GetThickness()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
double itk::AnnulusOperator< TPixel, TDimension, TAllocator >::GetThickness ( ) const
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 115 of file itkAnnulusOperator.h.

◆ NormalizeOff()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::NormalizeOff ( )
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 153 of file itkAnnulusOperator.h.

◆ NormalizeOn()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::NormalizeOn ( )
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 148 of file itkAnnulusOperator.h.

◆ PrintSelf()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::PrintSelf ( std::ostream &  os,
Indent  i 
) const
inlineoverridevirtual

Prints some debugging information

Reimplemented from itk::Neighborhood< TPixel, VDimension, TAllocator >.

Definition at line 221 of file itkAnnulusOperator.h.

References itk::Indent::GetNextIndent().

◆ SetAnnulusValue()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::SetAnnulusValue ( TPixel  v)
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 198 of file itkAnnulusOperator.h.

◆ SetBrightCenter()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::SetBrightCenter ( bool  b)
inline

If Normalize is on, you define the annulus to have a bright center or a dark center.

Definition at line 162 of file itkAnnulusOperator.h.

◆ SetExteriorValue()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::SetExteriorValue ( TPixel  v)
inline

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 208 of file itkAnnulusOperator.h.

◆ SetInnerRadius()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::SetInnerRadius ( double  r)
inline

Set/Get the inner radius of the annulus. Radius is specified in physical units (mm).

Definition at line 95 of file itkAnnulusOperator.h.

◆ SetInteriorValue()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::SetInteriorValue ( TPixel  v)
inline

If Normalize is off, the interior to annulus, the annulus (region between the two circles), and the region exterior to the annulus to be defined manually. Defauls are 0, 1, 0 respectively.

Definition at line 188 of file itkAnnulusOperator.h.

◆ SetNormalize()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::SetNormalize ( bool  b)
inline

Set/Get whether kernel values are computed automatically or specified manually

Definition at line 138 of file itkAnnulusOperator.h.

◆ SetSpacing()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::SetSpacing ( SpacingType s)
inline

Set/Get the pixel spacings. Setting these ensures the annulus is round in physical space. Defaults to 1.

Definition at line 124 of file itkAnnulusOperator.h.

◆ SetThickness()

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
void itk::AnnulusOperator< TPixel, TDimension, TAllocator >::SetThickness ( double  t)
inline

Set/Get the thickness of the annulus. The outer radius of the annulus is defined as r = InnerRadius + Thickness. Thickness is specified in physical units (mm).

Definition at line 110 of file itkAnnulusOperator.h.

Member Data Documentation

◆ m_AnnulusValue

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
PixelType itk::AnnulusOperator< TPixel, TDimension, TAllocator >::m_AnnulusValue { NumericTraits<PixelType>::OneValue() }
private

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 251 of file itkAnnulusOperator.h.

◆ m_BrightCenter

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
bool itk::AnnulusOperator< TPixel, TDimension, TAllocator >::m_BrightCenter { false }
private

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 249 of file itkAnnulusOperator.h.

◆ m_ExteriorValue

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
PixelType itk::AnnulusOperator< TPixel, TDimension, TAllocator >::m_ExteriorValue { NumericTraits<PixelType>::ZeroValue() }
private

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 252 of file itkAnnulusOperator.h.

◆ m_InnerRadius

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
double itk::AnnulusOperator< TPixel, TDimension, TAllocator >::m_InnerRadius { 1.0 }
private

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 246 of file itkAnnulusOperator.h.

◆ m_InteriorValue

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
PixelType itk::AnnulusOperator< TPixel, TDimension, TAllocator >::m_InteriorValue { NumericTraits<PixelType>::ZeroValue() }
private

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 250 of file itkAnnulusOperator.h.

◆ m_Normalize

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
bool itk::AnnulusOperator< TPixel, TDimension, TAllocator >::m_Normalize { false }
private

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 248 of file itkAnnulusOperator.h.

◆ m_Spacing

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
SpacingType itk::AnnulusOperator< TPixel, TDimension, TAllocator >::m_Spacing { 1.0 }
private

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 253 of file itkAnnulusOperator.h.

◆ m_Thickness

template<typename TPixel , unsigned int TDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
double itk::AnnulusOperator< TPixel, TDimension, TAllocator >::m_Thickness { 1.0 }
private

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 247 of file itkAnnulusOperator.h.


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