Man Linux: Main Page and Category List

NAME

       im_lintra, im_lintra_vec - performs a linear transformation on an image

SYNOPSIS

       #include <vips/vips.h>

       int im_lintra_vec(n, a, in, b, out)
       int n;
       double *a, *b;
       IMAGE *in, *out;

       int im_lintra(a, in, b, out)
       double a, b;
       IMAGE *in, *out;

DESCRIPTION

       im_lintra_vec(3) performs a linear transform on image in, that  is,  it
       calculates

         out = a * in + b

       a  and  b  are vectors, ie. arrays of constants of length n.  If in has
       one band, then the vectors may be any length and the output image  will
       have  the  same  number of bands as the length of the vector. If in has
       many bands, then the vector must be length 1, or have the  same  length
       as the number of bands in the image.

       If  the  input format is one of the integer types then output is float.
       In all other cases the output is the same as the input.

       im_lintra(3) is a convenience  function  which  calls  im_lintra_vec(3)
       with a vector of length 1.

RETURN VALUE

       The function returns 0 on success and -1 on error.

BUGS

       The function does not check for under/overflow

SEE ALSO

       im_exptra(3), im_logtra(3)

AUTHOR

       N. Dessipris - 24/04/1991
       J. Cupitt (rewrite) - 21/7/93

                                 24 April 1991