LTI-Lib latest version v1.9 - last update 10 Apr 2010

lti::borderPoints Class Reference
[Aggregate Data TypesShape Analysis]

Contour classes: Border-Points. More...

#include <ltiContour.h>

Inheritance diagram for lti::borderPoints:
Inheritance graph
[legend]
Collaboration diagram for lti::borderPoints:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 borderPoints ()
 borderPoints (const borderPoints &other)
virtual ~borderPoints ()
const char * getTypeName () const
borderPointscastFrom (const areaPoints &theAreaPoints)
borderPointscastFrom (const ioPoints &theIOPoints)
borderPointscastFrom (const polygonPoints &thePolygonPoints)
borderPointscastFrom (const polygonPoints &thePolygonPoints, const int &segments)
borderPointsoperator= (const borderPoints &other)
bool getFromMask (const channel8 &mask)
bool generateMask (channel8 &mask, const bool computeBoundary=true, const bool exactBoundaryDimensions=false, const bool keepMaskData=false) const
void invert ()
bool isConsistent () const

Detailed Description

Contour classes: Border-Points.

For the explanation of the contour description in this class, see following image:

   -- 00000000001111111111222222222233
   -- 01234567890123456789012345678901
   00 --------------------------------
   01 --------------------------------
   02 --------------------------------
   03 --------BBBB------BBBB----------
   04 -------B****BBB----B**B---------
   05 -------B*******B---B***B--------
   06 ------B*******B-----B*B---------
   07 -------B*******BBBBB**B---------
   08 ---------B*************B--------
   09 --------B**----*********B-------
   10 --------B**-----********B-------
   11 -------B**-----*******BB--------
   12 ------B**-----*******B----------
   13 ------B**-------******BB--------
   14 -----B**---------*******B-------
   15 -----B**--------*********B------
   16 ----B**-------**********BB------
   17 ---B***----*******----BB--------
   18 ----BBBBBBBBB***  --*B----------
   19 -------------BBBBBBBB-----------
   20 --------------------------------
   21 --------------------------------
   22 --------------------------------
   23 --------------------------------

  "-" means background and the rest is part of the object.
  "B" indicates a borderpoint.

This contour class allows three representations of a contour:

See also:
lti::ioPoints, lti::areaPoints

Constructor & Destructor Documentation

lti::borderPoints::borderPoints (  ) 

default constructor creates an empty border-point-list

lti::borderPoints::borderPoints ( const borderPoints other  ) 

create this pointList as a copy of another pointList

Parameters:
other the pointList to be copied.
virtual lti::borderPoints::~borderPoints (  )  [virtual]

destructor


Member Function Documentation

borderPoints& lti::borderPoints::castFrom ( const polygonPoints thePolygonPoints,
const int &  segments 
)

creates this borderPoint-List from the given PolygonPoint-List interpolating the curve with a cubicspline.

Parameters:
thePolygonPoints polygon points with source data
segments each space between 2 polygonPoints is parted in segments lines.
Returns:
a reference to this object
borderPoints& lti::borderPoints::castFrom ( const polygonPoints thePolygonPoints  ) 

creates this borderPoint-List from the given PolygonPoint-List conecting the points with lines

Parameters:
thePolygonPoints polygon points with source data
Returns:
a reference to this object
borderPoints& lti::borderPoints::castFrom ( const ioPoints theIOPoints  ) 

creates this io-list from the given io-point-list

borderPoints& lti::borderPoints::castFrom ( const areaPoints theAreaPoints  ) 

creates this border-point-list from the given area-point-list

bool lti::borderPoints::generateMask ( channel8 mask,
const bool  computeBoundary = true,
const bool  exactBoundaryDimensions = false,
const bool  keepMaskData = false 
) const

generate mask from border-points.

The dimensions of the resulting mask are the smallest rectangle to contain the point (0,0) (optional) and all points in this list, plus 1 pixel in both width and heigth. If the boundary of the point list is not up to date, it can be calculated if specified in the parameters:

Parameters:
mask The calculated mask will be stored here
computeBoundary If false, the internal boundary of the point list will be used, otherwise the boundary will be calculated (but NOT updated!!!).
exactBoundaryDimensions If true, the dimensions of the resulting mask will be the smallest rectangle to contain only the points in this list. The origin (0,0) may not be included, therefore a 1:1 correspondence of coordinates will generally not be given.
keepMaskData if false, the mask will be initialized with zero before getting the area mask. If true, the previous mask data is not deleted, but the mask will be resized if necessary.
Returns:
true if successful, false otherwise.
bool lti::borderPoints::getFromMask ( const channel8 mask  ) 

generate a border-point-list from the given mask image.

This function assumes that the mask contains JUST ONE connected object. To get the biggest object on the mask see the lti::objectsFromMask functor.

const char* lti::borderPoints::getTypeName ( void   )  const [inline, virtual]

returns the name of this class: "borderPoints"

Reimplemented from lti::tpointList< T >.

void lti::borderPoints::invert (  ) 

invert the direction of the border points

bool lti::borderPoints::isConsistent (  )  const

Check consistency of border points.

Border points are consistent if the D8 distance between any two subsequent points (with the first point being subsequent to the last) is exactly 1, i.e. if every border point is "next to" its predecessor, with "next to" meaning "one of the 8 neighbouring pixels in the grid".

borderPoints& lti::borderPoints::operator= ( const borderPoints other  )  [inline]

assigment operator (alias for copy(other)).

Parameters:
other the pointList to be copied
Returns:
a reference to the actual pointList

Reimplemented from lti::tpointList< T >.

References lti::tpointList< T >::copy().


The documentation for this class was generated from the following file:

Generated on Sat Apr 10 15:27:10 2010 for LTI-Lib by Doxygen 1.6.1