bbrescale

This function is not yet fully documented. This is a transcript of the text-formatted help.

bbrescale  Create a black-box operator for rescaling
   BB=bbrescale(DIM1,DIM2) creates an operator to rescale a hypercube of
   dimension DIM1 to one of dimension DIM2. Additional keywords may be
   added to specify the method.

   First the input is expanded to a continuous function over the
   hypercube. The following methods are available:
     'const'    - Piecewise constant (default)
                  AKA 'constant', 'pixel', and 'voxel'
     'linear'   - Piecewise linear
     'cubic'    - Piecewise cubic, derivatives estimated by central difference
     'spline'   - Piecewise cubic, derivatives continuous to 2nd order

   Piecewise cubic expansions ('cubic' and 'spline') can additionally
   specify how endpoints are treated:
     'midway'   - Derivative is determined at the middle of the end-segments
                  (default)
     'clamped'  - Derivative is zero
     'natural'  - 2nd derivative is zero
     'splined'  - 2nd derivative is continuous at the ends ('cubic' only)
     'notaknot' - The two end-segments are fused ('spline' only)
                  AKA 'nak' and 'not-a-knot'

   The output is computed from the continuous function as follows:
     'sample'   - Value at the center of volume element (AKA 'dirac')
     'average'  - Average of volume element (default, AKA 'mean')

   In most cases 'sample' requires additional filtering. The adjoint
   can create holes and non-uniform artifacts, which is problematic in
   linear equations. It may be useful for upsampling by an integer factor.

   In contrast, 'average' acts as a continuous filter, which avoids these
   problems. The default is particularly noteworthy as it satisfy:
       bbrescale(DIM1,DIM2,'const','average')
     = bbrescale(DIM2,DIM1,'const','average')'

   Example: rescale the hypercube X with different methods.
     DIM1=size(X); DIM2=ceil(dim1/pi);
     Y1=reshape(bbrescale(DIM1,DIM2)*X(:),DIM2);
     Y2=reshape(bbrescale(DIM1,DIM2,'linear','sample')*X(:),DIM2);

   See also bbredim, bbindex, , , , .