## NAME

         rst_invariant - calculates seven rst-invariant features

## SYNOPSIS

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

         double *rst_invariant(Image *label_image, int row, int col)

          <label_image> - pointer to a labeled ImageS structure
          <row> - a row coordinate within the object of interest
          <column>  -  a  column  coordinate  within  the  object  of
         interest

## PATH

         $CVIPHOME/FEATURE/rst_invariant.c

## DESCRIPTION

         This function calculates seven moment-based  rotation-scale-
         translation  (rst)-invariant features for an object selected
         by the user. In order to get the rst features, the  function
         first  calculates and normalizes central moments. This algo-
         rithm is designed to work on the binary image.

## TYPES AND CONSTANTS

         None

## RETURN VALUES

         An array of seven feature values

## HISTORY

         History information recorded: None

## EXAMPLE

          #include "CVIPtoolkit.h"
          #include "CVIPobject.h"
          #include "CVIPconvert.h"
          #include <math.h>
          #include "ObjectContour.h"

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

             setDisplay_Image("picture", "Default");

             print_CVIP("\nEnter the Input File Name:  ");
             inputfile = (char *) getString_CVIP();
             inputImage = read_Image(inputfile,1);
             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);
             /* the following call calculates the rst_invariant
             features */
             ptr=rst_invariant(labeledImage,r,c);
             print_CVIP("The rst_invariant features of the input
             image are:");
             for(i=0;i<7;i++)
             print_CVIP("rst_invariant%d=%f\n",i+1,ptr[i]);
             free(inputfile);
           }

## BUGS

         None at this time

## SEE ALSO

         libfeature(3)

## AUTHOR

         Copyright (C) 1996 SIUE - by Scott Umbaugh and Jihong Zhou.