NAME
gaussian_noise - Add gaussian noise to an image
SYNOPSIS
#include "CVIPnoise.h"
Image *gaussian_noise(Image *imageP,float *var,float *mean);
<imageP> - pointer to Image structure
<var> - variance of noise distribution
<mean> - mean or average value of noise distribution
PATH
$CVIPHOME/NOISE/noise.c
DESCRIPTION
Gaussian noise is the most common type of noise appearing in
an image. It is called such because it has the Gaussian
shaped histogram as shown by the following equation:
1
hi = -----------------exp((Gi-m)/(2*sigma^2))
sigma*sqrt(2*pi)
where Gi is the grey-level value of the ith pixel, sigma is
the variance, m is the mean.
RETURN VALUES
The gaussian_noise() function returns the modified Image
pointer on success, and returns a NULL pointer on failure
BUGS
none
EXAMPLE
#include <CVIPtoolkit.h>
#include <CVIPimage.h>
#include <CVIPconvert.h>
#include <CVIPview.h>
#include "CVIPnoise.h"
#define VIEWER "picture"
#define VIDEO_APP "SunVideo &"
void main()
{
Image *cvipImage;
IMAGE_FORMAT format;
char *inputfile,*outputfile;
float var=100.0;
float alpha=0.5;
setDisplay_Image(VIEWER, "Default");
print_CVIP("\n\t\tEnter the Input File Name: ");
inputfile =(char *) getString_CVIP();
format = getFormat_CVIP(inputfile);
cvipImage = read_Image(inputfile, 1);
view_Image(cvipImage, inputfile);
free(inputfile);
/* the following call adds gaussian noise to the
input image with the variance equal to 100.0 and
the mean equal to 0.5.We can use the function
gaussian_noise_setup so that the user can
specify the inputs */
cvipImage = gaussian_noise(cvipImage,&var,&alpha);
print_CVIP("\n\t\tEnter the Output File Name: ");
outputfile = getString_CVIP();
view_Image(cvipImage,outputfile);
write_Image(cvipImage,outputfile,CVIP_NO,CVIP_NO,format,1);
free(outputfile);;
}
SEE ALSO
gamma_noise(3), neg_exp_noise(3), rayleigh_noise(3),
speckle_noise(3), uniform_noise(3)
AUTHOR
Copyright (C) 1992, 1996 SIUE - by Scott Umbaugh and David
Lyons.