**NAME**

im_recomb - matrix recombination of image

**SYNOPSIS**

#include <vips/vips.h>
int im_recomb(imagein, imageout, mat)
IMAGE *imagein, *imageout;
DOUBLEMASK *mat;

**DESCRIPTION**

im_recomb() recombines the elements of an m band image to form an n
band image using mat, an m by n matrix of floating point numbers.
It calculates
A = B x C
where A is an n band output image, C is an m band input image and B is
an m by n matrix of floats. Can be used with a 3 by 3 matrix to perform
simple colour space transforms; 7 by 30 matrix to shrink 3rd order
development of 3 filter system to XYZ etc.
The output type is float unless the input type is double, in which case
the output type is double. It does not work for complex image types.
All intermediates are calculated as double. Note that the width of the
matrix should be equal to the number of bands in the input image.

**RETURN** **VALUE**

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

**SEE ALSO**

im_read_dmask(3), im_matinv(3), im_lintra(3)

**COPYRIGHT**

National Gallery and Birkbeck College, 1990 - 1996
11 April 1990