CVR-Lib last update 20 Sep 2009

cvr::areaPoints Class Reference
[Aggregate Data TypesShape Analysis]

List of all points within an area. More...

#include <cvrAreaPoints.h>

Inheritance diagram for cvr::areaPoints:

Inheritance graph
[legend]
Collaboration diagram for cvr::areaPoints:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 areaPoints ()
 areaPoints (const areaPoints &other)
virtual ~areaPoints ()
areaPointscastFrom (const borderPoints &theBorderPoints)
areaPointscastFrom (const ioPoints &theIoPoints)
areaPointscopy (const areaPoints &other)
areaPointsoperator= (const areaPoints &other)
virtual const std::string & name () const
virtual areaPointsclone () const
virtual areaPointsnewInstance () const
bool extractFromMask (const matrix< ubyte > &mask)
bool generateMask (matrix< ubyte > &mask, const bool computeBoundary=true, const bool exactBoundaryDimensions=false, const bool keepMaskData=false) const
int intersectionArea (const irectangle &rect) const


Detailed Description

List of all points within an area.

areaPoints is a ipointList that contains all points that belong to a specified area.

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:
cvr::ioPoints, cvr::borderPoints

Constructor & Destructor Documentation

cvr::areaPoints::areaPoints (  ) 

Default constructor.

empty areaPoints

cvr::areaPoints::areaPoints ( const areaPoints other  ) 

Copy constructor.

virtual cvr::areaPoints::~areaPoints (  )  [virtual]

Destructor.


Member Function Documentation

areaPoints& cvr::areaPoints::castFrom ( const ioPoints theIoPoints  ) 

Extracts areaPoints from ioPoints.

areaPoints& cvr::areaPoints::castFrom ( const borderPoints theBorderPoints  ) 

Extracts areaPoints from borderPoints.

virtual areaPoints* cvr::areaPoints::clone (  )  const [virtual]

Create a clone of the areaPoints.

Returns:
a pointer to a copy of the areaPoints.

Reimplemented from cvr::pointList< T >.

areaPoints& cvr::areaPoints::copy ( const areaPoints other  ) 

Extracts areaPoints from the given polygonPoints.

Copy other areaPoints into these.

bool cvr::areaPoints::extractFromMask ( const matrix< ubyte > &  mask  ) 

Extracts areaPoints from the given mask.

This function assumes that the mask contains JUST ONE connected object. To get the biggest object on the mask see cvr::objectsFromMask or cvr::fastRelabeling.

bool cvr::areaPoints::generateMask ( matrix< ubyte > &  mask,
const bool  computeBoundary = true,
const bool  exactBoundaryDimensions = false,
const bool  keepMaskData = false 
) const

Generate mask from the areaPoints.

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 given mask is bigger than this size, its dimensions will be kept.

If the boundary of the point list is not up to date, it can be calculated if specified by the arguments:

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.

int cvr::areaPoints::intersectionArea ( const irectangle rect  )  const

Compute intersection area with a rectangle.

virtual const std::string& cvr::areaPoints::name (  )  const [virtual]

Returns the name of this type.

Reimplemented from cvr::pointList< T >.

virtual areaPoints* cvr::areaPoints::newInstance (  )  const [virtual]

Create a new instance of areaPoints.

Returns:
a pointer to a copy of the areaPoints

Reimplemented from cvr::pointList< T >.

areaPoints& cvr::areaPoints::operator= ( const areaPoints other  )  [inline]

Assigment operator (alias for copy(other)).

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


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

Generated on Sun Sep 20 22:08:42 2009 for CVR-Lib by Doxygen 1.5.8