## NAME

         morphIterMod_Image - performs iterative morphological modif-
         ication

## SYNOPSIS

          #include "CVIPimage.h"
          #include "CVIPmorph.h"

         Image  *morphIterMod_Image(const  Image   *binImage,   const
         Matrix         **surMATS,        CVIP_BOOLEAN        (*const
         boolFUNC)(CVIP_BOOLEAN a,CVIP_BOOLEAN b), int no_of_sur, int
         connectedness, int no_of_iter, int f)

          <binImage> - pointer to Image structure (binary image)
          <surMATS> - pointer to set S (surrounds) for which a_ij = 1
          <boolFUNC> - pointer to Boolean  function  of  form  L(a,b)
         (c_ij = L(a_ij,b_ij))
          <no_of_sur> - number of surrounds
          <connectedness> - the connectivity scheme being  used;  one
         of...FOUR,EIGHT,SIX_NWSE,SIX_NESW.
          <no_of_iter> - number of iterations to perform
          <f> - number of subfields into which the image  tesselation
         will be divided

## PATH

         $CVIPHOME/MORPHOLOGICAL/morph.c

## DESCRIPTION

         Consider a_ij to have value one when the neighborhood of the
         picture cell at (i, j) is in this set. Next consider b_ij to
         denote the value of the picture cell itself. At  each  point
         of the tessellated image a new binary value is computed that
         is the result for that point of the  iterative  modification
         algorithm.  The  new  value c_ij is to be computed from a_ij
         and b_ij. Here a, b, c are Boolean variables,  in  that  the
         they  can  only  take  on values of 0 or 1. Computation of c
         from a and b can thus be specified by a Boolean function  of
         two variables -- <boolFUNC>. We can uniquely define the mor-
         phological iterative modification  algorithm  by  specifying
         four  things...  (1)  The  set S of surrounds <surMATS> (for
         which a_ij = 1), (2) The Boolean function L(a,b) (where c_ij
         =  L(a_ij,b_ij)), (3) The number of iterations <no_of_iter>,
         n. (4) The number of subfields, <f>, into  which  the  image
         tessellation is divided. There are several Boolean functions
         provided for the user (see functions zero, not_b,  and,  or,
         not_and,  or_not_and,  xor.)  In addition a set of hexagonal
         lattices are provided and declared as HEXLAT1, HEXLAT2, ...,
         HEXLAT14.  The  function  array2Matrix can be used to form a
         Matrix structure that can then be passed to morphomod(...).

## TYPES AND CONSTANTS

## RETURN VALUES

         A modified image

## HISTORY

         History information recorded: None

## SEE ALSO

         libmorph, morpho

## AUTHOR

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