Classes
contrib/gel/gevd/gevd_edgel_regions.h File Reference

generation of regions bounded by gevd_edgel chains More...

#include <vcl_vector.h>
#include <vcl_map.h>
#include <vtol/vtol_vertex_sptr.h>
#include <vtol/vtol_edge_2d_sptr.h>
#include <gevd/gevd_region_edge.h>
#include <gevd/gevd_bufferxy.h>
#include <vtol/vtol_intensity_face_sptr.h>
#include <vil1/vil1_image.h>

Go to the source code of this file.

Classes

class  gevd_edgel_regions

Detailed Description

generation of regions bounded by gevd_edgel chains

       Inputs:  Image, EdgelGroup
       Output: CoolListP<IntensityFace*>
   

The idea is to generate regions by inserting boundaries into an array. The boundaries are defined by a set of edgel chains and a boundary location is inserted at each edgel. The array is assumed to have a boundary at the perimeter of the ROI.

The array is scanned with a 2x2 neighborhood to form connected components in the usual way. Each of the connected component labels are reduced to the lowest equivalent label id by a transitive closure on the equivalence table.

A second scan of the label array is made to determine adjacency to a given edge. This process is enabled by a companion class, the gevd_region_edge which has storage for two labels, corresponding to each side of the edge.

The region edges are then used to collect the input edges which are adjacent to a given region. The set of edges adjacent to a region are used to construct a multiply-connected sub-class of Face, the IntensityFace. The IntensityFace maintains a scatter matrix of a planar fit to the intensity distribution over the corresponding region.

Author:
Author J. L. Mundy - January 14, 1999
   Modifications
    25 April 2000 - collinsr@cs.rpi.edu - switched region_edges_
                    to key on the Id() rather than the pointer value
                    to avoid different hash tables (and different
                    segmentations) for identical inputs (leaving the
                    question of why the hash table order matters for
                    another day)
   24 April 2002 - Peter Vanroose - replaced GetLeftLabel and GetRightLabel
                    by GetLabel, in accordance with gevd_region_edge change
   

Definition in file gevd_edgel_regions.h.