68 lines
2.3 KiB
Groff
68 lines
2.3 KiB
Groff
.TH IM_MULTIPLY 3 "24 April 1991"
|
|
.SH NAME
|
|
im_cmulnorm, im_multiply \- multiply two images
|
|
.SH SYNOPSIS
|
|
.B #include <vips/vips.h>
|
|
|
|
.B int im_cmulnorm(in1, in2, out)
|
|
.br
|
|
.B IMAGE *in1, *in2, *out;
|
|
|
|
.B int im_multiply(in1, in2, out)
|
|
.br
|
|
.B 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 sizes; however they can be of
|
|
different types. Only the history of the image descriptor pointed by in1 is
|
|
copied to out.
|
|
|
|
.B im_multiply(3)
|
|
applied to two integer images multiplies the two images and writes 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.
|
|
|
|
For complex input pels (x1,y1) and (x2,y2), im_multiply() writes
|
|
(x1*x2 - y1*y2, x1*y2 + x2*y1).
|
|
|
|
.B im_cmulnorm(3)
|
|
multiplies two complex images. The complex output is normalised to 1 by
|
|
dividing both the real and the imaginary part of each pel with the norm; for
|
|
instance if the complex multiplication produces (a,b) then the output written
|
|
by this function is (a/norm, b/norm), where norm=a*a+b*b. Result is checked
|
|
for norm=0. The function is useful for phase correlation. Both inputs should
|
|
be complex.
|
|
|
|
Result is float complex if both inputs are float complex. In any other case
|
|
the result is double complex.
|
|
|
|
.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_add(3).
|
|
.SH AUTHOR
|
|
N. Dessipris \- 22/04/1991
|
|
.br
|
|
J. Cupitt (im_multiply) \- 22/04/1991
|