NAME

     pct - performs the principal components transform.

SYNOPSIS

      #include <pct.h>

      cc ...libcolor.a

     Image *pct(Image *imgP, CVIP_BOOLEAN is_mask, float *maskP)

      <imgP> -  pointer to Image structure
      <is_mask> - whether to ignore a background color  (CVIP_YES
     or CVIP_NO)
      <maskP> - background color to ignore

     Image *ipct(Image *imgP, CVIP_BOOLEAN is_mask, float *maskP)

      <imgP> -  pointer to Image structure
      <is_mask> - whether to ignore a background color  (CVIP_YES
     or CVIP_NO)
      <maskP> - background color to ignore

     Image *pct_color(Image *imgP,  CVIP_BOOLEAN  is_mask,  float
     *maskP, int choice)

      <imgP> -  pointer to Image structure
      <is_mask> - whether to ignore a background color  (CVIP_YES
     or CVIP_NO)
      <maskP> - background color to ignore
      <choice> - 1=perform PCT, 2=perform IPCT

PATH

     $CVIPHOME/COLOR/pct.c

DESCRIPTION

     Performs  the  prinicipal  components  transform  (PCT)   on
     <srcImage>.   The resultant image contains a set of decorre-
     lated data bands  in  which  the  first  band  is  the  most
     discriminant, then the second band, and so on.

TYPES AND CONSTANTS

     -

RETURN VALUES

     Pointer to transformed image of type float

HISTORY

     History information recorded: 9 variables, each  an  element
     of the transformation matrix

EXAMPLE

      #include <CVIPtoolkit.h>
      #include <CVIPimage.h>
      #include <CVIPdef.h>
      #include <CVIPview.h>
      #include <CVIPconvert.h>
      #include <CVIPcomplex.h>
      #include <CVIPcolor.h>
      #define VIEWER "picture"
      #define VIDEO_APP "SunVideo &"

      void main()
      {
      Image *cvipImage;
      IMAGE_FORMAT format;
      char *inputfile,*outputfile;

      setDisplay_Image(VIEWER, "Default");
      /* The input image should be a COLOR one */
      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 forward  principal  com-
     ponent
      transform and the background color is not ignored */
      cvipImage=pct_color(cvipImage,CVIP_NO,NULL,1);
      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 at this time

SEE ALSO

     libcolor

AUTHOR

     Copyright (C) 1995 SIUE - by Scott Umbaugh and Greg Hance.