NAME
mean_filter - filtering operation used on an image to remove
short tailed noise such as uniform and gaussian noises.
SYNOPSIS
#include <CVIPtoolkit.h>
#include <CVIPdef.h>
#include <CVIPspfltr.h>
#include <float.h>
Image *mean_filter(Image *imageP, int mask_size)
<imageP> - pointer to Image structure.
<mask_size> - size of the filtering window (e.g., 3->
3x3).
PATH
$CVIPHOME/SPATIALFILTER/spatial_filter.c
OPTIONS
None.
DESCRIPTION
Returns the average value of the set of pixels contained in
the N x N filter window. The filter size should be an odd
integer limited from < 3 - 31>.
TIPS
Works best on short-tailed noise like uniform and Gaussian
noise. Keep the mask size small to minimize blurring.
DIAGNOSTICS
Returns a pointer to the modified Image structure on suc-
cess. Returns a NULL pointer if the input Image datatype is
not CVIP_BYTE and can't be cast to CVIP_FLOAT.
RETURN VALUES
Pointer to an image
HISTORY
History information recorded: None
EXAMPLE
#include <CVIPtoolkit.h>
#include <CVIPimage.h>
#include <CVIPdef.h>
#include <CVIPspfltr.h>
#include <CVIPconvert.h>
#include <CVIPview.h>
#define VIEWER "picture"
#define VIDEO_APP "SunVideo &"
void main()
{
Image *cvipImage;
IMAGE_FORMAT format;
char *inputfile,*outputfile;
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 performs the averaging
operation in every 3 x 3 window */
cvipImage = mean_filter(cvipImage,3);
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);
}
BUGS
None.
AUTHOR
Copyright (C) 1992, 1996 SIUE - by Scott E. Umbaugh and John
A Creighton.