Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
vpResample(3)		    Library Functions Manual		   vpResample(3)

NAME
     vpResample, vpResample2D, vpResample3D - resample an array

SYNOPSIS
     #include <volpack.h>

     vpResult
     vpResample(vpc,	num_dimens,    src_dimens,    dst_dimens,   src_strides,
	     dst_strides, element_type, src_array, dst_array)
	 vpContext *vpc;
	 int num_dimens;
	 int *src_dimens, *dst_dimens;
	 int *src_strides, *dst_strides;
	 int element_type;
	 void *src_array, *dst_array;

     vpResult
     vpResample2D(src_array,  src_x,  src_y,  dst_array,  dst_x,   dst_y,   ele-
	     ment_type, filter_type)
	 void *src_array;
	 int src_x, src_y;
	 void *dst_array;
	 int dst_x, dst_y;
	 int element_type;
	 int filter_type;

     vpResult
     vpResample3D(src_array,  src_x,  src_y,  src_z,  dst_array,  dst_x,  dst_y,
	     dst_z, element_type, filter_type)
	 void *src_array;
	 int src_x, src_y, src_z;
	 void *dst_array;
	 int dst_x, dst_y, dst_z;
	 int element_type;
	 int filter_type;

ARGUMENTS
     vpc    VolPack context from vpCreateContext.

     num_dimens
	    Number of dimensions in the input and output arrays.

     src_dimens
	    Array containing the dimensions of the input array.

     dst_dimens
	    Array containing the dimensions of the output array.

     src_strides
	    Array containing the strides for each dimension of the input array.

     dst_strides
	    Array containing the strides for each dimension of the output array.

     element_type
	    Constant specifying the data type of the array  elements  (VP_UCHAR,
	    VP_USHORT, VP_FLOAT).

     src_array
	    Input array containing input data.

     dst_array
	    Output array for result data.

     src_x, src_y, src_z
	    Dimensions of the input array.

     dst_x, dst_y, dst_z
	    Dimensions of the result array.

     filter_type
	    Constant  specifying  one  of the predefined filters (VP_BOX_FILTER,
	    VP_LINEAR_FILTER,	    VP_GAUSSIAN_FILTER,       VP_BSPLINE_FILTER,
	    VP_MITCHELL_FILTER).

DESCRIPTION
     vpResample is used to resample an array to a new grid with a different res-
     olution.	It  can be used to scale up or decimate an array of volume data,
     for instance.  An arbitrary separable space-invariant resampling filter can
     be specified via a lookup table containing filter weights.  The input array
     may have an arbitrary number of dimensions, but on each call to  vpResample
     only one dimension of the array is resampled.  To scale all dimensions call
     the  routine  once  for  each dimension.  Transformations other than scales
     (e.g. rotations and shears) are not supported by these routines.

     The routines vpResample2D and vpResample3D  provide  a  simpler  (but  less
     flexible)	interface  to vpResample.  They take as arguments an input array
     with its dimensions, an output array with its dimensions,	and  a	constant
     specifying  a filter.  The input array is resampled once for each dimension
     and then stored in the output array.  These two routines automatically cre-
     ate a filter weight table and arrays for temporary results.

     The remainder of this man page describe vpResample.  The vpc argument is  a
     VolPack  context that contains a description of the resampling filter.  Use
     vpSetFilter to define the filter.	The volume data and rendering parameters
     currently stored in the context are not affected by calls to vpResample.

     The remaining arguments to vpResample describe the size and layout  of  the
     input  and  output arrays.  The two arrays must have the same number of di-
     mensions, specified by num_dimens.  The sizes of the dimensions are  speci-
     fied  by src_dimens and dst_dimens which are 1D arrays with num_dimens ele-
     ments in each array.  src_dimens[0] is the size of the input  dimension  to
     be  resampled.  dst_dimens[0] is the size of the output dimension after re-
     sampling, so the scale factor is dst_dimens[0] /  src_dimens[0].	The  re-
     maining  elements of src_dimens give the sizes of the other input array di-
     mensions in any order (although some orderings result in  faster  execution
     due  to  lower memory overhead).  The other output array dimensions are ig-
     nored (although they should be the same as the  corresponding  input  array
     dimensions since only one dimensions is resampled).

     The  src_strides  and  dst_stride	arguments  are	1D arrays that contain a
     stride in bytes for each dimension of the input and output  arrays,  stored
     in the same order as the dimensions sizes in src_dimens.

     The  element_type	argument  specifies the data type of each element of the
     input and output data arrays.  The supported types are:

     VP_UCHAR
	    Unsigned character (1 byte per element).

     VP_USHORT
	    Unsigned short (2 bytes per element).

     VP_FLOAT
	    Single-precision floating point (4 bytes per element).

     Finally, the last two arguments to vpResample are pointers to the first el-
     ements of the input and output arrays.

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

     VPERROR_BAD_SIZE
	    No filter weight table has been specified.

SEE ALSO
     VolPack(3), vpSetFilter(3)

VolPack 							   vpResample(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=volpack-Resample&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help