template<typename TInputImage, typename TCoordinate = double, typename TPixelCompare = std::less<typename itk::NumericTraits<typename TInputImage::PixelType>::RealType>>
class itk::LabelImageGaussianInterpolateImageFunction< TInputImage, TCoordinate, TPixelCompare >
Interpolation function for multi-label images that implicitly smooths each unique value in the image corresponding to each label set element and returns the corresponding label set element with the largest weight.
This filter is an alternative to nearest neighbor interpolation for multi-label images. Given a multi-label image I
with label set L
, this function returns a label at the non-voxel position I(x)
, based on the following rule
\[ I(x) = \arg\max_{l \in L} (G_\sigma * I_l)(x) \]
Where \( I_l \) is the l-th
binary component of the multilabel image. In other words, each label in the multi-label image is convolved with a Gaussian, and the label for which the response is largest is returned. For sigma=0, this is just nearest neighbor interpolation.
This class defines an N-dimensional Gaussian interpolation function for label using the vnl error function. The two parameters associated with this function are:
Sigma
- a scalar array of size ImageDimension determining the width of the interpolation function.
Alpha
- a scalar specifying the cutoff distance over which the function is calculated.
- Note
- The input image can be of any type, but the number of unique intensity values in the image will determine the amount of memory needed to complete each interpolation.
- Author
- Paul Yushkevich
-
Nick Tustison
- ITK Sphinx Examples:
-
- Examples
- SphinxExamples/src/Core/ImageFunction/ResampleSegmentedImage/Code.cxx.
Definition at line 72 of file itkLabelImageGaussianInterpolateImageFunction.h.
|
using | ConstPointer = SmartPointer< const Self > |
|
using | InputPixelType = typename TInputImage::PixelType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = LabelImageGaussianInterpolateImageFunction |
|
using | Superclass = GaussianInterpolateImageFunction< TInputImage, TCoordinate > |
|
using | ArrayType = FixedArray< RealType, ImageDimension > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = GaussianInterpolateImageFunction |
|
using | Superclass = InterpolateImageFunction< TInputImage, TCoordinate > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | RealType = typename NumericTraits< typename TInputImage::PixelType >::RealType |
|
using | Self = InterpolateImageFunction |
|
using | SizeType = typename InputImageType::SizeType |
|
using | Superclass = ImageFunction< TInputImage, typename NumericTraits< typename TInputImage::PixelType >::RealType, TCoordinate > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | ContinuousIndexType = ContinuousIndex< TCoordinate, Self::ImageDimension > |
|
using | CoordinateType = TCoordinate |
|
using | IndexType = typename InputImageType::IndexType |
|
using | IndexValueType = typename InputImageType::IndexValueType |
|
using | InputImageConstPointer = typename InputImageType::ConstPointer |
|
using | InputImageType = TInputImage |
|
using | InputPixelType = typename InputImageType::PixelType |
|
using | OutputType = NumericTraits< TInputImage::PixelType >::RealType |
|
using | Pointer = SmartPointer< Self > |
|
using | PointType = Point< TCoordinate, Self::ImageDimension > |
|
using | Self = ImageFunction |
|
using | Superclass = FunctionBase< Point< TCoordinate, Self::ImageDimension >, NumericTraits< TInputImage::PixelType >::RealType > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | InputType = Point< TCoordinate, TInputImage::ImageDimension > |
|
using | OutputType = NumericTraits< TInputImage::PixelType >::RealType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = FunctionBase |
|
using | Superclass = Object |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = Object |
|
using | Superclass = LightObject |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = LightObject |
|
|
| LabelImageGaussianInterpolateImageFunction ()=default |
|
| ~LabelImageGaussianInterpolateImageFunction () override=default |
|
virtual void | ComputeBoundingBox () |
|
virtual void | ComputeErrorFunctionArray (const RegionType ®ion, unsigned int dimension, RealType cindex, vnl_vector< RealType > &erfArray, vnl_vector< RealType > &gerfArray, bool evaluateGradient=false) const |
|
RegionType | ComputeInterpolationRegion (const ContinuousIndexType &) const |
|
| GaussianInterpolateImageFunction () |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
| ~GaussianInterpolateImageFunction () override=default |
|
virtual void | SetBoundingBoxStart (ArrayType _arg) |
|
virtual ArrayType | GetBoundingBoxStart () const |
|
virtual void | SetBoundingBoxEnd (ArrayType _arg) |
|
virtual ArrayType | GetBoundingBoxEnd () const |
|
virtual void | SetCutOffDistance (ArrayType _arg) |
|
virtual ArrayType | GetCutOffDistance () const |
|
| InterpolateImageFunction ()=default |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
| ~InterpolateImageFunction () override=default |
|
| ImageFunction () |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
| ~ImageFunction () override=default |
|
| FunctionBase ()=default |
|
| ~FunctionBase () override=default |
|
| Object () |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
|
| ~Object () override |
|
virtual LightObject::Pointer | InternalClone () const |
|
| LightObject () |
|
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
|
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
|
virtual | ~LightObject () |
|