.TH GAUSS_MASKS 3 "6 December 1991"
.SH NAME
im_gauss_dmask, im_gauss_imask \- create a gaussian DOUBLEMASK or INTMASK
.SH SYNOPSIS
.B #include <vips/vips.h>

.B DOUBLEMASK im_gauss_dmask( name, sigma, min_amplitude )
.br
char *name;
.br
double sigma, min_amplitude;

.B INTMASK im_gauss_imask( name, sigma, min_amplitude )
.br
char *name;
.br
double sigma, min_amplitude;

.B INTMASK im_gauss_imask_sep( name, sigma, min_amplitude )
.br
char *name;
.br
double sigma, min_amplitude;

.SH DESCRIPTION
Both functions create a circularly symmetric Gaussian mask of sigma.  The size
of the mask is determined by the variable min_amplitude; if for instance the
value .1 is entered this means that the produced mask is clipped at values
less than 10 percent of the maximum amplitude.
The mask can be directly used with the vasari convolution
programs, the default offset set is 0.

The program uses the following equation:

   H(r) = exp( -(r * r) / (2 * sigma * sigma) ).

The generated mask has odd size and its maximum value is normalised to
either 100 (gauss_imask) or to 1.0 (gauss_dmask).

.B im_gauss_dmask(3)
creates a DOUBLEMASK laplacian of Gaussian mask with maximum value normalised 
to 1.0.

.B im_gauss_imask(3)
creates a INTMASK laplacian of Gaussian mask with maximum value normalised
to 100.

.B im_gauss_imask_sep(3)
returns the centre line of 
.B im_gauss_imask(3). 
It is convenient for use with
.B im_conv_sep(3)
for building fast gaussian blur or sharpen.

.SH RETURNED VALUE:
The functions return NULL on erorr.
.SH SEE ALSO
im_log_dmask(3), im_conv(3), im_conv_sep(3).
.SH COPYRIGHT
.br
N. Dessipris
.SH AUTHOR
N. Dessipris \- 06/12/1991
