vpBoxFilter - Man Page

initialize a filter weight table

Synopsis

#include <volpack.h>

vpResult

vpBoxFilter(num_taps, num_phases, weights, weights_bytes)

int num_taps, num_phases;

float *weights;

int weights_bytes;

vpResult

vpLinearFilter(num_taps, num_phases, weights, weights_bytes)

int num_taps, num_phases;

float *weights;

int weights_bytes;

vpResult

vpBicubicFilter(b_value, c_value, num_taps, num_phases, weights, weights_bytes)

double b_value, c_value;

int num_taps, num_phases;

float *weights;

int weights_bytes;

vpResult

vpGaussianFilter(sigma, num_taps, num_phases, weights, weights_bytes)

double sigma;

int num_taps, num_phases;

float *weights;

int weights_bytes;

Arguments

num_taps

Number of filter taps.

num_phases

Number of filter phases.

weights

Array containing filter weights.

weights_bytes

Size (in bytes) of array containing filter weights.

b_value

"B" parameter in the formula for a Mitchell bicubic.

c_value

"C" parameter in the formula for a Mitchell bicubic.

sigma

Standard deviation for a Gaussian.

Description

These routines can be used to initialize filter weight tables for use with vpSetFilter and vpResample.  See the vpSetFilter man page for information on the num_taps and num_phases arguments.

vpBoxFilter creates a filter table for a box filter (a zero-order filter).  With num_taps equal to 1 the filter is a nearest-neighbor filter, suitable for low-quality upsampling.  To create a decimation filter that averages down, the number of taps should equal the decimation factor (as nearly as possible).

vpLinearFilter creates a filter table for a linear filter (a first-order or tent filter).  With num_taps equal to 2 the filter performs linear interpolation.

vpBicubicFilter creates a filter table for a Mitchell bicubic filter.  The first two arguments can be used to modify the shape of the filter kernel.  Some standard parameter values are:

b_value = 1, c_value = 0

Cubic B-spline.

b_value = 0, c_value = 0.5

Catmull-Rom spline.

With four filter taps the cubic B-spline filter is suitable for upsampling.  For more details, see the following paper: Mitchell, D.P. and Netravali, A.N., "Reconstruction filters in computer graphics," Proc. SIGGRAPH '88 (Computer Graphics V22 N4), p. 221-8.

vpGaussianFilter creates a filter table for a gaussian filter. The first argument is the standard deviation of the gaussian.

Errors

The normal return value is VP_OK.  The following error return values are possible:

VPERROR_BAD_SIZE

The filter weight table size is invalid.

VPERROR_BAD_VALUE

The number of phases is not a positive power of two.

See Also

VolPack(3), vpResample(3), vpSetFilter(3)

Referenced By

VolPack(3), vpSetFilter(3).

VolPack