NAME
Ypmean_filter - a non-linear mean filter which is better at
removing gaussian type noise and preserving edge features
than the mean filter.
SYNOPSIS
#include <CVIPtoolkit.h>
#include <CVIPdef.h>
#include <CVIPspfltr.h>
#include <float.h>
Image *Ypmean_filter(Image *imageP, int mask_size, int p)
<imageP> - pointer to Image structure.
<mask_size> - size of the filtering window (3->3x3).
<p> - filter order.
PATH
$CVIPHOME/SPATIALFILTER/spatial_filter.c
DESCRIPTION
Calculates the sum of the pixels in the filter window raised
to the power of p, then divided by N*N. Returns this value
raised to the power of 3/p. Good at removing positive
outliers for negative values of p and negative outliers for
positive values of p. Size of filter should be an odd
integer limited from < 3 - 31 >, and order of filter is lim-
ited from <-5 to +5>.
TIPS
Works well on images containing positive outlier noise if
the parameter P is negative, and on images containing nega-
tive outlier noise if the parameter P is positive. P should
remain small (3-3) for better performance. Keep filter mask
size small to reduce 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.
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;
(void) 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 a non-linear mean
filter in every 3 x 3 window */
cvipImage = Ypmean_filter(cvipImage,3,2);
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.