funzoom Image reduction by projection on a B-spline space
funzoom [-z z] [-x tx] [-y ty] [-o o] in out
-z z : unzoom factor (default 2.0)
-x tx : to first translate (x) the original image
-y ty : to first transalte (y) the original image
-o o : spline space order, 0..5, default 0
in : input Fimage
out : output Fimage
Fimage funzoom (in , out , z , o , tx , ty )
Fimage in , out ;
float *z , *tx , *ty ;
int *o ;
This module unzooms an image by a factor z. The input image is first
projected orthogonally onto the space of B-splines of order n (see
fcrop module). The order n can be specified
-o option. Then, an appropriate subsampling is performed.
Hence, the L2 norm of the error caused by image reduction is minimized.
This method, described in [UAE95], allows to
avoid undesirable artifacts like aliasing.
If n = 0, the method is a simple averaging under the assumption that pixel are adjacent squares. The input image u is supposed to take constant values in each 1×1 square (nearest neighbor interpolation), and the output value at a given pixel is given by the average of u on the corresponding z×z square. In particular, this yields the classical simple ``block averaging'' for integer reduction factors.
For n 1, the algorithm consists in two steps :
1. a zoom by a certain cubic (non-regular) spline, *, where is the B-spline of order 1 and (x) = (x/z).
2. an inverse spline transform of order 3, performed by the
Last Modification date : Tue Feb 19 13:45:23 2002