ITK
6.0.0
Insight Toolkit
|
#include <itkZeroFluxNeumannBoundaryCondition.h>
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):
returns the following neighborhood of values:
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 | Self = ZeroFluxNeumannBoundaryCondition |
using | Superclass = ImageBoundaryCondition< TInputImage, TOutputImage > |
Public Types inherited from itk::ImageBoundaryCondition< TInputImage, TInputImage > | |
using | IndexType = Index< ImageDimension > |
using | InputImageType = TInputImage |
using | NeighborhoodAccessorFunctorType = typename TInputImage::NeighborhoodAccessorFunctorType |
using | NeighborhoodType = Neighborhood< PixelPointerType, ImageDimension > |
using | OffsetType = Offset< ImageDimension > |
using | OutputImageType = TInputImage |
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, TInputImage > | |
virtual RegionType | GetInputRequestedRegion (const RegionType &inputLargestPossibleRegion, const RegionType &) const |
virtual const char * | GetNameOfClass () const |
virtual OutputPixelType | GetPixel (const IndexType &index, const TInputImage *image) const=0 |
ImageBoundaryCondition ()=default | |
virtual OutputPixelType | operator() (const OffsetType &point_index, const OffsetType &boundary_offset, const NeighborhoodType *data) const=0 |
virtual OutputPixelType | operator() (const OffsetType &point_index, const OffsetType &boundary_offset, const NeighborhoodType *data, const NeighborhoodAccessorFunctorType &neighborhoodAccessorFunctor) const=0 |
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, TInputImage > | |
static constexpr unsigned int | ImageDimension |
using itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::Self = ZeroFluxNeumannBoundaryCondition |
Standard class type aliases.
Definition at line 62 of file itkZeroFluxNeumannBoundaryCondition.h.
using itk::ZeroFluxNeumannBoundaryCondition< TInputImage, TOutputImage >::Superclass = ImageBoundaryCondition<TInputImage, TOutputImage> |
Definition at line 63 of file itkZeroFluxNeumannBoundaryCondition.h.
|
default |
Default constructor.
|
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.
inputLargestPossibleRegion | Largest possible region of the input image. |
outputRequestedRegion | The output requested region. |
Reimplemented from itk::ImageBoundaryCondition< TInputImage, TInputImage >.
|
overridevirtual |
Reimplemented from itk::ImageBoundaryCondition< TInputImage, TInputImage >.
|
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.
index | The index of the desired pixel. |
image | The image from which pixel values should be determined. |
Implements itk::ImageBoundaryCondition< TInputImage, TInputImage >.
|
overridevirtual |
Computes and returns a neighborhood of appropriate values from neighborhood iterator data..
Implements itk::ImageBoundaryCondition< TInputImage, TInputImage >.
|
overridevirtual |
Computes and returns the appropriate pixel value from neighborhood iterator data, using the functor.
Implements itk::ImageBoundaryCondition< TInputImage, TInputImage >.
|
staticconstexpr |
Extract information from the image type.
Definition at line 81 of file itkZeroFluxNeumannBoundaryCondition.h.