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.