NAME

     adaptive_contrast_filter - adaptive contrast filter

SYNOPSIS

     Image * adaptive_contrast_filter(Image *  inputImage,  float
     k1,  float  k2,  unsigned  int  kernel_size, float min_gain,
     float max_gain)

      <inputImage> - pointer to an Image
      <k1> - local gain factor multiplier  (typically  between  0
     and 1)
      <k2> - local mean multiplier (between 0 and 1)
      <kernel_size> - size of local window (an odd number)
      <min_gain> - the minimum local gain factor
      <max_gain> - the maximum local gain factor

PATH

      $CVIPHOME/SPATIALFILTER/adaptive_contrast.c

DESCRIPTION

     The  adaptive  contrast  enhancement  filter  is   used   to
     adjustthe  contrast  differently in different regions of the
     image.The adaptive contrast filter is based on the following
     equation:

     adaptive_contrast_filter =

                  M{I(r,c)}
              k1*----------- * (I(r,c) - m_l(r,c)) + k2*m_l(r,c)
                 sigma_l(r,c)

     where M{I(r,c)} is the mean for  the  entire  image  I(r,c),
     sigma_l  is  the  local standard deviation, m_l is the local
     mean and k1, k2 are constants between 0 and 1.

TYPES AND CONSTANTS

     None

RETURN VALUES

     Pointer to the processed 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;

      (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 filter operation in a
      kernel size of 5 with the local gain factor multiplier
      and local mean multiplier equal to 0.5 with the minimum
      and maximum local gain factor equal to 0.5 and 5 */
      cvipImage = adaptive_contrast_filter(cvipImage,0.5,0.5,
      5,0.5,5);
      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  Wenxing
     Li.