NAME

     unsharp_filter - performs unsharp masking

SYNOPSIS

      #include <CVIPtoolkit.h>
      #include <CVIPtools.h>

     Image*  unsharp_filter(Image  *inputImage,  int  lower,  int
     upper,  float low_clip, float high_clip)

      <inputImage> - pointer to an Image structure
      <lower> - lower limit for histogram shrink (0-254)
      <upper> - upper limit for histogram shrink (1-255)
      <low_clip> - percentage of low values to clip
                   during hist_stretch
      <high_clip> - percentage of high values to clip
                    during hist_stretch

PATH

     $CVIPHOME/SPATIALFILTER/unsharp.c

DESCRIPTION

     Unsharp masking is a technique that combines  filtering  and
     histogram modification. The input image is lowpass filtered;
     a histogram shrink is then performed on the filtered  image.
     The  resultant  image is subtracted from the original, and a
     histogram stretch completes the process.

TYPES AND CONSTANTS

     None

RETURN VALUES

     A filtered 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 unsharp masking with
      the shrinking range between 0 and 200 and the lower
      and higher clipping values equal to .01 for
      histogram stretching */
      cvipImage = unsharp_filter(cvipImage,0,200,.01,.01);
      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

     libspatialfilter

AUTHOR

     Copyright (C) 1996 SIUE - by Scott E. Umbaugh and Kun Luo.