PCL
pcl::CubicFilter Class Reference

Mitchell-Netravali parameterized cubic filters. More...

#include <BicubicFilterInterpolation.h>

+ Inheritance diagram for pcl::CubicFilter:

Public Member Functions

 CubicFilter (const CubicFilter &)=default
 
 CubicFilter (double B, double C)
 
virtual ~CubicFilter ()
 
virtual CubicFilterClone () const
 
virtual String Description () const
 
PCL_HOT_FUNCTION double operator() (double x) const noexcept
 
CubicFilteroperator= (const CubicFilter &)=default
 
double Width () const noexcept
 

Detailed Description

CubicFilter implements a two-parameter, separable cubic filter as described in Don P. Mitchell, Arun N. Netravali (1988), Reconstruction Filters in Computer Graphics, Computer Graphics, Vol. 22, No. 4, pp. 221-228.

The family of cubic filters designed by Mitchell and Netravali has two parameters called B and C. Although these parameters can take any values, the authors recommend values pertaining to the line B + 2C = 1. In particular, the filter defined by B=C=1/3 has been proven to have excellent characteristics for a wide range of image reconstruction tasks.

See also
MitchellNetravaliCubicFilter, CatmullRomSplineFilter, CubicBSplineFilter

Definition at line 86 of file BicubicFilterInterpolation.h.

Constructor & Destructor Documentation

◆ CubicFilter() [1/2]

pcl::CubicFilter::CubicFilter ( double  B,
double  C 
)
inline

Constructs a new CubicFilter object with the specified filter parameters B and C.

Definition at line 94 of file BicubicFilterInterpolation.h.

◆ CubicFilter() [2/2]

pcl::CubicFilter::CubicFilter ( const CubicFilter )
default

Copy constructor.

◆ ~CubicFilter()

virtual pcl::CubicFilter::~CubicFilter ( )
inlinevirtual

Virtual destructor.

Definition at line 115 of file BicubicFilterInterpolation.h.

Member Function Documentation

◆ Clone()

virtual CubicFilter* pcl::CubicFilter::Clone ( ) const
inlinevirtual

Returns a pointer to a dynamically allocated duplicate of this filter.

Reimplemented in pcl::CubicBSplineFilter, pcl::CatmullRomSplineFilter, and pcl::MitchellNetravaliCubicFilter.

Definition at line 167 of file BicubicFilterInterpolation.h.

Referenced by pcl::BicubicFilterPixelInterpolation::BicubicFilterPixelInterpolation().

◆ Description()

virtual String pcl::CubicFilter::Description ( ) const
inlinevirtual

Returns a descriptive text string for this cubic filter.

Reimplemented in pcl::CubicBSplineFilter, pcl::CatmullRomSplineFilter, and pcl::MitchellNetravaliCubicFilter.

Definition at line 159 of file BicubicFilterInterpolation.h.

◆ operator()()

PCL_HOT_FUNCTION double pcl::CubicFilter::operator() ( double  x) const
inlinenoexcept

Evaluates this cubic filter for x.

Note
For performance reasons, this function returns an invalid value outside the range ]-2,+2[, which is the support of Mitchell-Netravali cubic filters. Strictly, zero should be returned outside the support range, but since this is a performance-critical routine, we have sacrified strictness for the sake of optimization. This function should never be called for Abs( x ) >= 2.

Definition at line 135 of file BicubicFilterInterpolation.h.

◆ operator=()

CubicFilter& pcl::CubicFilter::operator= ( const CubicFilter )
default

Assignment operator.

◆ Width()

double pcl::CubicFilter::Width ( ) const
inlinenoexcept

Returns the filter's width, measured from the origin to its cutoff point. We define the support of a (symmetric) filter as the range ]-width,+width[.

Mitchell-Netravali cubic filters are zero outside the range ]-2,+2[, hence this function always returns 2.

Definition at line 151 of file BicubicFilterInterpolation.h.


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