103 lines
3.3 KiB
Groff
103 lines
3.3 KiB
Groff
.TH ADDITION 3 "24 April 1991"
|
|
.SH NAME
|
|
im_add, im_gadd, im_gaddim, im_gfadd \- add two images
|
|
.SH SYNOPSIS
|
|
#include <vips/vips.h>
|
|
|
|
int im_add(in1, in2, out)
|
|
.br
|
|
IMAGE *in1, *in2, *out;
|
|
|
|
int im_gadd(a, in1, b, in2, c, out)
|
|
.br
|
|
double a, b, c;
|
|
.br
|
|
IMAGE *in1, *in2, *out;
|
|
|
|
int im_gaddim(a, in1, b, in2, c, out)
|
|
.br
|
|
double a, b, c;
|
|
.br
|
|
IMAGE *in1, *in2, *out;
|
|
|
|
int im_gfadd(a, in1, b, in2, c, out)
|
|
.br
|
|
double a, b, c;
|
|
.br
|
|
IMAGE *in1, *in2, *out;
|
|
|
|
.SH DESCRIPTION
|
|
These functions operate on two images held by image descriptors in1 and in2
|
|
and write the result to the image descriptor out. Input images in1 and in2
|
|
should have the same channels and the same size; however they can be of
|
|
different types. Only the history of the image descriptor pointed by in1 is
|
|
copied to out.
|
|
|
|
.B im_add(3)
|
|
|
|
For two integer images, add the two images and write the output as
|
|
|
|
in1 - uchar char ushort short uint int
|
|
-------|-----------------------------------------
|
|
in2 |
|
|
uchar | ushort short ushort short uint int
|
|
char | short short short short int int
|
|
ushort | ushort short ushort short uint int
|
|
short | short short short short int int
|
|
uint | uint int uint int uint int
|
|
int | int int int int int int
|
|
|
|
If one or more of the images is a floating point type, the output is FMTFLOAT,
|
|
unless one or more of the inputs is FMTDOUBLE, in which case the output is
|
|
also FMTDOUBLE.
|
|
|
|
If one or more of the images is a complex type, the output is FMTCOMPLEX,
|
|
unless one or more of the inputs is FMTDPCOMPLEX, in which case the output is
|
|
also FMTDPCOMPLEX.
|
|
|
|
.B im_gadd(3)
|
|
performs generalised addition of two images by calling
|
|
.B im_gaddim(3)
|
|
and
|
|
.B im_gfadd(3).
|
|
These are very old and tired things, and should not be used.
|
|
|
|
Input should be non complex. Output depends on input according to function
|
|
called. The result at each point is: a * pel1 + b * pel2 + c, properly
|
|
rounded if necessary. Pel1 and pel2 are the
|
|
corresponding pixels from in1 and in2 respectively.
|
|
|
|
im_gaddim() performs generalised addition of in1 and in2, on the condition
|
|
they are neither float nor double nor complex. The format of the resultant
|
|
image is given by the table:
|
|
|
|
in1 - uchar char ushort short uint int
|
|
-------|-----------------------------------------
|
|
in2 |
|
|
uchar | ushort short ushort short uint int
|
|
char | short short short short int int
|
|
ushort | ushort short ushort short uint int
|
|
short | short short short short int int
|
|
uint | uint int uint int uint int
|
|
int | int int int int int int
|
|
|
|
The result at each point is: a * pel1 + b * pel2 + c, properly rounded. Pel1
|
|
and pel2 are the corresponding pixels from in1 and in2 respectively.
|
|
|
|
.B im_gfadd(3)
|
|
adds the non-complex images pointed by in1 and in2. Result is
|
|
float except if one (or both) inputs is double. In the latter case the result
|
|
is double. The result at each point is: a * pel1 + b * pel2 + c. Pel1 and
|
|
pel2 are the corresponding pixels from in1 and in2 respectively.
|
|
|
|
.SH BUGS
|
|
None of the functions checks the result for over/underflow.
|
|
.SH RETURN VALUE
|
|
All functions return 0 on success and -1 on error.
|
|
.SH SEE ALSO
|
|
im_subtract(3), im_lintra(3), im_multiply(3).
|
|
.SH AUTHOR
|
|
N. Dessipris \- 22/04/1991
|
|
.br
|
|
J. Cupitt, im_add(), \- 21/7/93
|