|
Developer Documentation |
|
Centre for Vision, Speech & Signal Processing |
Comments:
This algorithm is a fast implementation of the segmentation algorithm by
A. Hojjatoleslami. Speed is achieved by using the following implementation
techniques:
- A priority queue data structure stores the pixels in the current
boundary. This makes the search for the next pixel to add to the region
very fast.
- A RegBoundaryC object is used to store the region. This is an AMMA
big object and is therefore effectively very fast to pass into functions
and return.
- The RegBoundaryC object calculates all region statistics incrementally
so does not need to traverse the whole region at each iteration in order
to calculate the average and gradient boundary values.
- The number of iterations that the segmentation grows for is typically
left low compared to the values used by Ali since it makes segmentation
a lot faster. The disadvantage is that it undersegments large objects, but
they should be detected and removed by later processing stages.
Variables:
- UIntT _maxN;
-
| ind | Index of types of intererest. |
Methods:
- RegOrderedGrowC(UIntT maxN)
-
Constructor
| ind | Index of types of intererest. |
- const DListC<RegBoundaryC> Grow(const ByteImageC & scene,const DListC<RegSeedC> & seedList) const
-
Grows a region from each seed and returns the list of boundaries
| ind | Index of types of intererest. |
Regions will be assigned label corresponding to the one of their seed.
There is absolutely no check at this point for whether or not regions
overlap.
- ImageC<NumLabelC> Label(const ImageRectangleC & rect,const DListC<RegBoundaryC> & boundList) const
-
Generates a labelled image using the list of boundaries
| ind | Index of types of intererest. |
Labelled regions in the image cannot overlap and as they are going to be
added in the order that they appear in the boundList, if they do,
previously added regions will be overwritten. The internal boundary is
highlighted by setting bit 16.
- ImageC<NumLabelC> Segment(const ByteImageC & scene,const DListC<RegSeedC> & seedList) const
-
Grows a region from each seed and returns a labelled image
| ind | Index of types of intererest. |
The job is performed internally by calling first Grow and then Label.
- RGBImageC Overlay(const RGBImageC & scene,const ByteRGBValueC & colour,const DListC<RegBoundaryC> & boundList) const
-
Generates an overlaid image of the scene with region outlines
| ind | Index of types of intererest. |
The internal boundary of each region is highlighed in an output overlaid
image of the scene.
|
Programmer:Robert Crida, Documentation by CxxDoc: Tue Mar 20 10:49:27 2001
|