latest version v1.9 - last update 10 Apr 2010 |
Contour classes: IO-Points. More...
#include <ltiContour.h>
Public Member Functions | |
ioPoints () | |
ioPoints (const ioPoints &other) | |
virtual | ~ioPoints () |
const char * | getTypeName () const |
ioPoints & | castFrom (const areaPoints &theAreaPoints) |
ioPoints & | castFrom (const borderPoints &theBorderPoints) |
ioPoints & | operator= (const ioPoints &other) |
bool | getFromMask (const channel8 &mask) |
bool | generateMask (channel8 &mask, const bool computeBoundary=true, const bool exactBoundaryDimensions=false, const bool keepMaskData=false) const |
void | sort () |
Contour classes: IO-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.
There are mainly three representations of a contour:
lti::ioPoints::ioPoints | ( | ) |
default constructor creates an empty io-points list
lti::ioPoints::ioPoints | ( | const ioPoints & | other | ) |
create this pointList as a copy of another pointList
other | the pointList to be copied. |
virtual lti::ioPoints::~ioPoints | ( | ) | [virtual] |
destructor
ioPoints& lti::ioPoints::castFrom | ( | const borderPoints & | theBorderPoints | ) |
creates this io-list from the given border-points-list
ioPoints& lti::ioPoints::castFrom | ( | const areaPoints & | theAreaPoints | ) |
creates this io-list from the given area-points-list
bool lti::ioPoints::generateMask | ( | channel8 & | mask, | |
const bool | computeBoundary = true , |
|||
const bool | exactBoundaryDimensions = false , |
|||
const bool | keepMaskData = false | |||
) | const |
generate mask from io-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:
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. |
bool lti::ioPoints::getFromMask | ( | const channel8 & | mask | ) |
generate ioPoint-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::ioPoints::getTypeName | ( | void | ) | const [inline, virtual] |
returns the name of this class: "ioPoints"
Reimplemented from lti::tpointList< T >.
assigment operator (alias for copy(other)).
other | the pointList to be copied |
Reimplemented from lti::tpointList< T >.
References lti::tpointList< T >::copy().
void lti::ioPoints::sort | ( | ) |
sort the points of this in ascending order first of y, and than of x.
Reimplemented from lti::tpointList< T >.