## NAME

         hist_feature - calculates histogram features: mean, standard
         deviation, skew, energy and entropy

## SYNOPSIS

          #include <math.h>
          #include "CVIPimage.h"

          double    *hist_feature(Image     *originalImage,     Image
         *labeledImage, int r, int c)

           <originalImage> - Pointer to the original image
           <labeledImage> -  Pointer to the labeled image
           <r> - row coordinate of a point on the labled image
           <c> - column coordinate of a point on the labled image

## PATH

         $CVIPHOME/FEATURE/hist_feature.c

## DESCRIPTION

              The program first calculates the histogram P(g) of the
              object of interest in each band, then computes mean,
              standard deviation, skew, energy and entropy.Those gray
              level values whose P(g) equal to zero are filtered out.
              Equations of these five measures are given in chapter 2
              of following soon-to-be-published book:

                    Computer Vision and Image Processing:
                    A Practical Approach Using CVIPtools

                       S.E.Umbaugh, Prentice Hall, 1996

## TYPES AND CONSTANTS

         None

## RETURN VALUES

              A pointer to double, its value is equal to the initial
              address of  a  one_dimensional  array,  which  contains
         above
              five histogram features of each band. If  the  original
         image
              is a color image, the first five values are for band 0,
         the
              next five data are for band 1, and so on.

## HISTORY

         History information recorded: None

## EXAMPLE

         #include "CVIPtoolkit.h"
          #include "CVIPobject.h"
          #include "CVIPconvert.h"

          #include <math.h>
          #include "CVIPimage.h"

          void main() {
             Image *inputImage, *labeledImage;
             IMAGE_FORMAT format;
             char *inputfile;
             int rows, cols, r, c;
             double *result;

             setDisplay_Image("picture", "Default");

             print_CVIP("\nEnter the Input File Name:  ");
             inputfile = (char *) getString_CVIP();
             inputImage = read_Image(inputfile, format, TRUE);
             view_Image(inputImage,inputfile);

             labeledImage = label(inputImage);

             rows = getNoOfRows_Image(labeledImage);
             cols = getNoOfCols_Image(labeledImage);

             print_CVIP("\nEnter the row coordinate of a point on the
         labled image: ");
             r = getInt_CVIP(10, 0, rows);
             print_CVIP("\nEnter the col coordinate of the  point  on
         the labled image: ");
             c = getInt_CVIP(10, 0, cols);
             /*  hist_feature - calculates histogram features:  mean,
         standard
             deviation, skew, energy and entropy */
             result =  hist_feature(inputImage, labeledImage, r, c);

             print_CVIP("Histogram feature:\n");
             print_CVIP("\t mean = %d\n", *result);
             print_CVIP("\t standard deviation = %d\n", *(result+1));
             print_CVIP("\t skew = %d\n", *(result+1));
             print_CVIP("\t energy = %d\n", *(result+1));
             print_CVIP("\t entropy = %d\n", *(result+1));

             free(inputfile);
           }

## DIAGNOSTICS

              The original image can be of any of these  data  types:
         CVIP_BYTE,
              CVIP_SHORT, CVIP_INTEGER, CVIP_FLOAT and CVIP_DOUBLE.

## SEE ALSO

         libfeature

## AUTHOR

         Copyright (C) 1996 SIUE - by Scott E.  Umbaugh  and  Wenxing
         Li.