ITK  5.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Attributes | List of all members
itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage > Class Template Reference

#include <itkZeroFluxNeumannBoundaryCondition.h>

+ Inheritance diagram for itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >:
+ Collaboration diagram for itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >:

Detailed Description

template<typename TInputImage, typename TOutputImage = TInputImage>
class itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >

A function object that determines a neighborhood of values at an image boundary according to a Neumann boundary condition where first, upwind derivatives on the boundary are zero. This is a useful condition in solving some classes of differential equations.

For example, invoking this function object on a 7x5 iterator that masks a region at an image corner (iterator is centered on the 2):

* * * * * * *
* * * * * * *
* * 1 2 3 4 5 (where * denotes pixels that lie
* * 3 3 5 5 6 outside of the image boundary)
* * 4 4 6 7 8

returns the following neighborhood of values:

1 1 1 2 3 4 5
1 1 1 2 3 4 5
1 1 1 2 3 4 5
3 3 3 3 5 5 6 (note the corner values)
4 4 4 4 6 7 8

The input to this function object is a neighborhood iterator. This boundary condition object is designed to be given as a template argument to a NeighborhoodIterator or any of the NeighborhoodIterator subclasses.

Definition at line 58 of file itkZeroFluxNeumannBoundaryCondition.h.

Public Types

using IndexType = typename Superclass::IndexType
 
using NeighborhoodAccessorFunctorType = typename Superclass::NeighborhoodAccessorFunctorType
 
using NeighborhoodType = typename Superclass::NeighborhoodType
 
using OffsetType = typename Superclass::OffsetType
 
using OutputPixelType = typename Superclass::OutputPixelType
 
using PixelPointerType = typename Superclass::PixelPointerType
 
using PixelType = typename Superclass::PixelType
 
using RegionType = typename Superclass::RegionType
 
using Self = ZeroFluxNeumannBoundaryCondition
 
using SizeType = typename Superclass::SizeType
 
using Superclass = ImageBoundaryCondition< TInputImage, TOutputImage >
 
- Public Types inherited from itk::ImageBoundaryCondition< TInputImage, TOutputImage >
using IndexType = Index< ImageDimension >
 
using InputImageType = TInputImage
 
using NeighborhoodAccessorFunctorType = typename TInputImage::NeighborhoodAccessorFunctorType
 
using NeighborhoodType = Neighborhood< PixelPointerType, ImageDimension >
 
using OffsetType = Offset< ImageDimension >
 
using OutputImageType = TOutputImage
 
using OutputPixelType = typename TOutputImage::PixelType
 
using PixelPointerType = typename TInputImage::InternalPixelType *
 
using PixelType = typename TInputImage::PixelType
 
using RegionType = ImageRegion< ImageDimension >
 
using Self = ImageBoundaryCondition
 
using SizeType = Size< ImageDimension >
 

Public Member Functions

RegionType GetInputRequestedRegion (const RegionType &inputLargestPossibleRegion, const RegionType &outputRequestedRegion) const override
 
const char * GetNameOfClass () const override
 
OutputPixelType GetPixel (const IndexType &index, const TInputImage *image) const override
 
OutputPixelType operator() (const OffsetType &point_index, const OffsetType &boundary_offset, const NeighborhoodType *data) const override
 
OutputPixelType operator() (const OffsetType &point_index, const OffsetType &boundary_offset, const NeighborhoodType *data, const NeighborhoodAccessorFunctorType &neighborhoodAccessorFunctor) const override
 
 ZeroFluxNeumannBoundaryCondition ()=default
 
- Public Member Functions inherited from itk::ImageBoundaryCondition< TInputImage, TOutputImage >
 ImageBoundaryCondition ()=default
 
virtual void Print (std::ostream &os, Indent i=0) const
 
virtual bool RequiresCompleteNeighborhood ()
 
virtual ~ImageBoundaryCondition ()=default
 

Static Public Attributes

static constexpr unsigned int ImageDimension = Superclass::ImageDimension
 
- Static Public Attributes inherited from itk::ImageBoundaryCondition< TInputImage, TOutputImage >
static constexpr unsigned int ImageDimension = TInputImage::ImageDimension
 

Member Typedef Documentation

template<typename TInputImage, typename TOutputImage = TInputImage>
using itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::IndexType = typename Superclass::IndexType

Definition at line 71 of file itkZeroFluxNeumannBoundaryCondition.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
using itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::NeighborhoodAccessorFunctorType = typename Superclass::NeighborhoodAccessorFunctorType

Definition at line 76 of file itkZeroFluxNeumannBoundaryCondition.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
using itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::NeighborhoodType = typename Superclass::NeighborhoodType

Definition at line 74 of file itkZeroFluxNeumannBoundaryCondition.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
using itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::OffsetType = typename Superclass::OffsetType

Definition at line 73 of file itkZeroFluxNeumannBoundaryCondition.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
using itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::OutputPixelType = typename Superclass::OutputPixelType

Definition at line 69 of file itkZeroFluxNeumannBoundaryCondition.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
using itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::PixelPointerType = typename Superclass::PixelPointerType

Definition at line 68 of file itkZeroFluxNeumannBoundaryCondition.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
using itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::PixelType = typename Superclass::PixelType

Extract information from the image type.

Definition at line 67 of file itkZeroFluxNeumannBoundaryCondition.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
using itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::RegionType = typename Superclass::RegionType

Definition at line 70 of file itkZeroFluxNeumannBoundaryCondition.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
using itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::Self = ZeroFluxNeumannBoundaryCondition

Standard class type aliases.

Definition at line 63 of file itkZeroFluxNeumannBoundaryCondition.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
using itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::SizeType = typename Superclass::SizeType

Definition at line 72 of file itkZeroFluxNeumannBoundaryCondition.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
using itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::Superclass = ImageBoundaryCondition< TInputImage, TOutputImage >

Definition at line 64 of file itkZeroFluxNeumannBoundaryCondition.h.

Constructor & Destructor Documentation

template<typename TInputImage, typename TOutputImage = TInputImage>
itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::ZeroFluxNeumannBoundaryCondition ( )
default

Default constructor.

Member Function Documentation

template<typename TInputImage, typename TOutputImage = TInputImage>
RegionType itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::GetInputRequestedRegion ( const RegionType inputLargestPossibleRegion,
const RegionType outputRequestedRegion 
) const
overridevirtual

Determines the necessary input region for the output region. For this boundary condition, only the intersection of the largest possible image region and the output requested region is needed. If the intersection is empty, then a one-pixel layer of the image from the side closest to the output requested region is needed.

Parameters
inputLargestPossibleRegionLargest possible region of the input image.
outputRequestedRegionThe output requested region.
Returns
The necessary input region required to determine the pixel values in the outputRequestedRegion.

Reimplemented from itk::ImageBoundaryCondition< TInputImage, TOutputImage >.

template<typename TInputImage, typename TOutputImage = TInputImage>
const char* itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::GetNameOfClass ( ) const
inlineoverridevirtual

Runtime information support.

Reimplemented from itk::ImageBoundaryCondition< TInputImage, TOutputImage >.

Definition at line 85 of file itkZeroFluxNeumannBoundaryCondition.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
OutputPixelType itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::GetPixel ( const IndexType index,
const TInputImage *  image 
) const
overridevirtual

Returns a value for a given pixel at an index. If the index is inside the bounds of the input image, then the pixel value is obtained from the input image. Otherwise, the nearest pixel value is returned.

Parameters
indexThe index of the desired pixel.
imageThe image from which pixel values should be determined.

Implements itk::ImageBoundaryCondition< TInputImage, TOutputImage >.

template<typename TInputImage, typename TOutputImage = TInputImage>
OutputPixelType itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::operator() ( const OffsetType point_index,
const OffsetType boundary_offset,
const NeighborhoodType data 
) const
overridevirtual

Computes and returns a neighborhood of appropriate values from neighborhood iterator data..

Implements itk::ImageBoundaryCondition< TInputImage, TOutputImage >.

template<typename TInputImage, typename TOutputImage = TInputImage>
OutputPixelType itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::operator() ( const OffsetType point_index,
const OffsetType boundary_offset,
const NeighborhoodType data,
const NeighborhoodAccessorFunctorType neighborhoodAccessorFunctor 
) const
overridevirtual

Computes and returns the appropriate pixel value from neighborhood iterator data, using the functor.

Implements itk::ImageBoundaryCondition< TInputImage, TOutputImage >.

Member Data Documentation

template<typename TInputImage, typename TOutputImage = TInputImage>
constexpr unsigned int itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::ImageDimension = Superclass::ImageDimension
static

Extract information from the image type.

Definition at line 79 of file itkZeroFluxNeumannBoundaryCondition.h.


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