ITK  5.3.0
Insight Toolkit
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
itk::NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TImage > Class Template Reference

#include <itkNeighborhoodAlgorithm.h>

Classes

class  Result
 

Public Types

using FaceListType = std::list< RegionType >
 
using IndexType = typename TImage::IndexType
 
using RadiusType = typename NeighborhoodIterator< TImage >::RadiusType
 
using RegionType = typename TImage::RegionType
 
using SizeType = typename TImage::SizeType
 

Public Member Functions

FaceListType operator() (const TImage *, RegionType, RadiusType)
 

Static Public Member Functions

static Result Compute (const TImage &, RegionType, RadiusType)
 

Static Public Attributes

static constexpr unsigned int ImageDimension = TImage::ImageDimension
 

Detailed Description

template<typename TImage>
class itk::NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TImage >

Splits an image into a main region and several "face" regions which are used to handle computations on the boundary of an image.

Splitting the image into the necessary regions is an easy task when you use the ImageBoundaryFacesCalculator. The face calculator is so named because it returns a list of the "faces" of the ND dataset. Faces are those regions whose pixels all lie within a distance $d$ from the boundary, where $d$ is the radius of the neighborhood stencil used for the numerical calculations. In other words, faces are those regions where a neighborhood iterator of radius $d$ will always overlap the boundary of the image. The face calculator also returns the single inner region, in which out-of-bounds values are never required and bounds checking is not necessary.

Example regions produced by the calculator.

First we find center (non-boundary) region 0. then find the face on the lower side of the 0th dimension (Region 1). Next we find the face opposite to that face (Region 2). Then we find the face between region 1 and region 2 on the lower side of the 1th dimension.(region 3). Finally we find the face opposite to face 3 (region 4).

Note
The first region contained in faceList should be the non-boundary region, if there is one. The existence of a non-boundary region depends on the relative location of regionToProcess and bufferedRegion. The non-boundary regions (if any) are the remaining faces in faceList.
Examples
Examples/Iterators/NeighborhoodIterators3.cxx, Examples/Iterators/NeighborhoodIterators4.cxx, Examples/Iterators/NeighborhoodIterators5.cxx, Examples/Iterators/ShapedNeighborhoodIterators1.cxx, and Examples/Iterators/ShapedNeighborhoodIterators2.cxx.

Definition at line 63 of file itkNeighborhoodAlgorithm.h.

Member Typedef Documentation

◆ FaceListType

template<typename TImage >
using itk::NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TImage >::FaceListType = std::list<RegionType>

Definition at line 69 of file itkNeighborhoodAlgorithm.h.

◆ IndexType

template<typename TImage >
using itk::NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TImage >::IndexType = typename TImage::IndexType

Definition at line 67 of file itkNeighborhoodAlgorithm.h.

◆ RadiusType

template<typename TImage >
using itk::NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TImage >::RadiusType = typename NeighborhoodIterator<TImage>::RadiusType

Definition at line 65 of file itkNeighborhoodAlgorithm.h.

◆ RegionType

template<typename TImage >
using itk::NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TImage >::RegionType = typename TImage::RegionType

Definition at line 66 of file itkNeighborhoodAlgorithm.h.

◆ SizeType

template<typename TImage >
using itk::NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TImage >::SizeType = typename TImage::SizeType

Definition at line 68 of file itkNeighborhoodAlgorithm.h.

Member Function Documentation

◆ Compute()

template<typename TImage >
static Result itk::NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TImage >::Compute ( const TImage &  ,
RegionType  ,
RadiusType   
)
static

Splits the specified region into a non-boundary region and a list of boundary faces, and returns the result.

◆ operator()()

template<typename TImage >
FaceListType itk::NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TImage >::operator() ( const TImage *  ,
RegionType  ,
RadiusType   
)

Member Data Documentation

◆ ImageDimension

template<typename TImage >
constexpr unsigned int itk::NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TImage >::ImageDimension = TImage::ImageDimension
staticconstexpr

Definition at line 70 of file itkNeighborhoodAlgorithm.h.


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