PCL
|
Bicubic filter interpolation algorithms. More...
#include <BicubicFilterInterpolation.h>
Public Member Functions | |
BicubicFilterInterpolation (const BicubicFilterInterpolation &)=default | |
BicubicFilterInterpolation (int rx, int ry, const CubicFilter &filter) | |
~BicubicFilterInterpolation () override | |
const CubicFilter & | Filter () const noexcept |
int | HorizontalRadius () const noexcept |
void | Initialize (const T *data, int dataWidth, int dataHeight) override |
PCL_HOT_FUNCTION double | operator() (double x, double y) const override |
void | SetFilter (const CubicFilter &filter) |
void | SetRadii (int rx, int ry) |
int | VerticalRadius () const noexcept |
Public Member Functions inherited from pcl::BidimensionalInterpolation< T > | |
BidimensionalInterpolation ()=default | |
BidimensionalInterpolation (const BidimensionalInterpolation &)=default | |
virtual | ~BidimensionalInterpolation () |
const T * | BeingInterpolated () const |
double | BorderFillValue () const |
virtual void | Clear () |
void | DisableBorderFilling (bool disable=true) |
void | EnableBorderFilling (bool enable=true) |
int | Height () const |
bool | IsBorderFillingEnabled () const |
void | SetBorderFillValue (double v) |
int | Width () const |
Bicubic filter interpolation uses a cubic filter (an instance of CubicFilter or a derived class) to interpolate pixel values in a rectangular pixel matrix of the specified horizontal and vertical radii. Thanks to the separability of cubic filters, BicubicFilterInterpolation can be applied with a different filter size on each axis.
Definition at line 351 of file BicubicFilterInterpolation.h.
|
inline |
Constructs a new BicubicFilterInterpolation instance.
rx,ry | Horizontal and vertical interpolation radii, respectively, in pixels. Both radii must be >= 1. Interpolation will take place in a rectangular pixel matrix with 2*rx + 1 columns and 2*ry + 1 rows. |
filter | Reference to a CubicFilter instance that will be used as the interpolation filter. |
Definition at line 366 of file BicubicFilterInterpolation.h.
|
default |
Copy constructor.
|
inlineoverride |
Virtual destructor.
Definition at line 384 of file BicubicFilterInterpolation.h.
|
inlinenoexcept |
Returns a constant reference to the cubic filter being used by this interpolation.
Definition at line 626 of file BicubicFilterInterpolation.h.
|
inlinenoexcept |
Returns the horizontal interpolation radius in pixels.
Definition at line 582 of file BicubicFilterInterpolation.h.
|
inlineoverridevirtual |
Initializes a new interpolation.
data | Two-dimensional matrix of function values stored in row-order. Must remain valid and accessible while this object is used to compute interpolated function values. |
width | Horizontal dimension (most rapidly varying coordinate) of the data array. |
height | Vertical dimension (most slowly varying coordinate) of the data array. |
Reimplemented from pcl::BidimensionalInterpolation< T >.
Definition at line 390 of file BicubicFilterInterpolation.h.
|
inlineoverridevirtual |
Returns an interpolated value at {x,y} location.
x,y | Coordinates of the interpolation point (horizontal,vertical). |
Interpolation takes place on a rectangular matrix whose center is the nearest pixel to {x, y}. The interpolation matrix has 2*rx + 1 columns and 2*ry + 1 rows, where rx and ry are the horizontal and vertical interpolation radii, respectively.
Implements pcl::BidimensionalInterpolation< T >.
Definition at line 413 of file BicubicFilterInterpolation.h.
|
inline |
Sets a new cubic filter to be applied by this interpolation.
Definition at line 634 of file BicubicFilterInterpolation.h.
|
inline |
Sets new interpolation radii.
rx,ry | Horizontal and vertical interpolation radii, respectively, in pixels. Both radii must be >= 1. Interpolation will take place in a rectangular pixel matrix with 2*rh + 1 columns and 2*rv + 1 rows. |
Definition at line 603 of file BicubicFilterInterpolation.h.
References pcl::Max().
|
inlinenoexcept |
Returns the vertical interpolation radius in pixels.
Definition at line 590 of file BicubicFilterInterpolation.h.