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

lti::fastEllipseExtraction::parameters Class Reference

the parameters for the class fastEllipseExtraction More...

#include <ltiFastEllipseExtraction.h>

Inheritance diagram for lti::fastEllipseExtraction::parameters:
Inheritance graph
[legend]
Collaboration diagram for lti::fastEllipseExtraction::parameters:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 parameters ()
 parameters (const parameters &other)
 ~parameters ()
const char * getTypeName () const
parameterscopy (const parameters &other)
parametersoperator= (const parameters &other)
virtual functor::parametersclone () const
virtual bool write (ioHandler &handler, const bool complete=true) const
virtual bool read (ioHandler &handler, const bool complete=true)

Public Attributes

float maxQuantizationError
int segmentTolerance
int maxSegmentGap
int minLineLen
int minSegmLen
int maxLineGap
int maxArcGap
float maxLineTangentError
float maxArcTangentError
float maxExtArcMismatch
float maxCenterMismatch
float minRadiusMatchRatio
float minCoverage
float minArcDistanceRatio
float maxArcDistanceAngle
int minGAPangleDistance
float maxGAPangle
float maxArcOverlapGap
int maxIntAngleMismatches
int maxTangentErrors
float maxLBcenterMismatch
int ellExtArcExtractionStage

Detailed Description

the parameters for the class fastEllipseExtraction


Constructor & Destructor Documentation

lti::fastEllipseExtraction::parameters::parameters (  ) 

default constructor

Reimplemented from lti::featureExtractor::parameters.

lti::fastEllipseExtraction::parameters::parameters ( const parameters other  ) 

copy constructor

Parameters:
other the parameters object to be copied

Reimplemented from lti::featureExtractor::parameters.

lti::fastEllipseExtraction::parameters::~parameters (  )  [virtual]

destructor

Reimplemented from lti::featureExtractor::parameters.


Member Function Documentation

virtual functor::parameters* lti::fastEllipseExtraction::parameters::clone (  )  const [virtual]

returns a pointer to a clone of the parameters

Reimplemented from lti::featureExtractor::parameters.

parameters& lti::fastEllipseExtraction::parameters::copy ( const parameters other  ) 

copy the contents of a parameters object

Parameters:
other the parameters object to be copied
Returns:
a reference to this parameters object

Reimplemented from lti::featureExtractor::parameters.

const char* lti::fastEllipseExtraction::parameters::getTypeName (  )  const [virtual]

returns name of this type

Reimplemented from lti::featureExtractor::parameters.

parameters& lti::fastEllipseExtraction::parameters::operator= ( const parameters other  ) 

copy the contents of a parameters object

Parameters:
other the parameters object to be copied
Returns:
a reference to this parameters object
virtual bool lti::fastEllipseExtraction::parameters::read ( ioHandler handler,
const bool  complete = true 
) [virtual]

read the parameters from the given ioHandler

Parameters:
handler the ioHandler to be used
complete if true (the default) the enclosing begin/end will be also written, otherwise only the data block will be written.
Returns:
true if write was successful

Reimplemented from lti::functor::parameters.

virtual bool lti::fastEllipseExtraction::parameters::write ( ioHandler handler,
const bool  complete = true 
) const [virtual]

write the parameters in the given ioHandler

Parameters:
handler the ioHandler to be used
complete if true (the default) the enclosing begin/end will be also written, otherwise only the data block will be written.
Returns:
true if write was successful

Reimplemented from lti::functor::parameters.


Member Data Documentation

The number of checks that an extArc must pass before it gets extracted.

This parameter was mainly used for debugging purposes but might further on be useful for the finding of optimal extraction parameters.

  1 = interior angle check
  2 = tangent check
  3 = line beam check
  

With a value of 1 or 2 you can examine the behaviour of the extArc checks. Unless there is a good reason for less extArc checks this this value should be 3.

This parameter defines the maximum angle between the connection line of the start points of two arcs and the line from start point to end point of the first arc.

reasonable values are

  10 <= maxArcDistanceAngle <= 20
  

Small values increase the separation accuracy of adjacent ellipse arcs but also lowers tolerance against corrupted arcs. Best results were obtained with a value of 16 (the default).

The maximum gap two arcs may have and still be considered arcs of the same extended arc.

This parameter changes the size of the searching window for arcs. Best results were obtained with large values, because every arc has to find at least two neighbours to remain in the extraction process. (the gap between these arcs mostly lies between 10 and 40 pixels) A maxArcGap of 1 will only group contiguous arcs to an extended arc. possible values are

  maxArcGap >= 1 (pixel)
  

Higher maxArcGap values also allow extraction of non-contiguous arcs such as found in corrupted images. The default is 25

This parameter defines the maximum radial gap two overlapping arcs.

ExtArc pairs which exceed this threshold won't be combined to an extArc. Too large values cause detection failures. reasonable values are

  1 <= maxArcOverlapGap <= 3
  

Best results were obtained with a value of 1 (the default).

This parameter defines the maximum difference that the tangents of two arcs may have in relation to the tangents of the ellipse that these arcs represent.

In other words, this parameter affects the tolerance in terms of ellipse matching. Arcs exceeding this threshold won't be combined to an extended arc. Too large values result incorrect extended arcs and detection failures. reasonable values are

  10 <= maxArcTangentError <= 20
  

Small values cause stricter ellipse checks whereas large values allow more tolerance. Best results were obtained with more tolerant values between 15 and 20 (the default is 18)

This parameter defines the maximum gap between the estimated ellipse centers of two extended arcs.

ExtArc pairs which exceed this threshold won't be combined to an ellipse. Too large values cause detection failures. reasonable values are

  1 <= maxCenterMismatch <= 10
  

Small values cause stricter extArc matching checks whereas large values allow more tolerance. Best compromise between accuracy and tolerance is a value between 3 and 7 (the default is 5)

This parameter defines the maximum value that the start and end points of one extArc inserted into the normal ellipse equation of the other extArc may give.

ExtArcs which exceed this threshold won't be merged into an ellipse. Too large values cause detection failures. reasonable values are

  0 < maxExtArcMismatch < 1
  

Small values cause stricter ellipse matching checks whereas large values allow more tolerance. Best compromise between accuracy and tolerance is a value between 0.2 and 0.4 (the default is 0.3)

This parameter defines the maximum angle between the end tangent of the first arc and the start tangent of the second arc and the connection tangent.

Arc pairs which exceed this threshold won't be combined to an extArc. Too large values cause detection failures whereas too small values reject correct arcs. reasonable values are

  25 <= maxGAPangle <= 35
  

Best results were obtained with a value of 30 (the default).

This parameter defines the maximum number of errors in the interior angle check.

The interior angles of all lines of the three arcs must be smaller than 90 degrees to remain in the extArc extraction process. Because of image corruptions one or more errors should be allowed. Too large values cause detection failures. reasonable values are

  1 <= maxIntAngleMismatches <= 3
  

Best results were obtained with a value of 1 (the default).

This parameter defines the maximum distance between the line beam of the extArc and the center point of the estimated ellipse.

ExtArcs which exceed this threshold won't be combined to an ellipse. Too large values cause detection failures. reasonable values are

  1 <= maxLBcenterMismatch <= 10
  

Small values cause stricter extArc matching checks whereas large values allow more tolerance. Best compromise between accuracy and tolerance is a value between 3 and 6 (the default is 4)

The maximum gap two lines may have and still be considered lines of the same arc.

This parameter changes the size of the searching window for lines. Best results were obtained with small values, because large window sizes tend to combine adjacent parallel lines to one arc which causes detection failures. A maxLineGap of 1 will only group contiguous lines to an arc. possible values are

  maxLineGap >= 1 (pixel)
  

Higher maxLineGap values also allow extraction of non-contiguous arcs such as found in corrupted images. The default is 3

This parameter defines the maximum difference that the tangents of two lines may have in relation to the tangents of the arc that these lines represent.

In other words, this parameter affects the tolerance in terms of roundness of the countour. Line pairs which exceed this threshold won't be combined to an arc. Too large values result in incorrect arcs and detection failures. reasonable values are

  8.5 <= maxLineTangentError <= 20
  

Small values cause stricter circle checks whereas large values allow more tolerance. Best compromise between accuracy and tolerance is a value between 10 and 15 (the default is 14)

This threshold constant defines the maximum mismatch between the found line segments and the estimated analog line.

The segment is discarded if its starting/finishing pixel differs more than maxQuantizationError from the estimated analog line. If this value is greater than 1.0 the line detection will also extract lines that are not completely straight, which may be useful for estimation of lines. possible values are

  0.5 < maxQuantizationError
  

A high maxQuantizationError value will extract longer lines at the cost of precision. Low values result in better pixel matching but also in shorter lines. Best compromise between pixel matching and good detection is a value between 0.6 and 0.7 (the default is 0.79)

The maximum gap two line segments may have and still be considered segments of the same line.

This parameter changes the size of the searching window for line segments. Small sizes allow fast processing but may also cause detection failures (as well as too high values) A maxSegmentGap of 1 will only group contiguous segments to a line. possible values are

  maxSegmentGap >= 1 (pixel)
  

Higher maxSegmentGap values also allow extraction of non-contiguous lines such as found in corrupted images. The default is 1

This parameter defines the maximum number of errors in the arc tangent check.

The tangents of all lines of the three base arcs of one extArc must match the corresponding tangents of the estimated ellipse. The maximum difference between ideal and real tangent is defined by the parameter maxArcTangentError. Because of image corruptions one or more errors should be allowed. Too large values cause detection failures. reasonable values are

  1 <= maxTangentErrors <= 3
  

Best results were obtained with a value of 1 (the default).

This parameter defines the minimum relative distance of two arcs.

That is the distance of the start points of both arcs compared to the start-end point distance of the first arc. Arcs which underrun this threshold won't be combined to extArcs. reasonable values are

  0 <= minArcDistanceRatio <= 1
  

Values <1 allow extraction of overlapping arcs. Best results were obtained with values between 0.5 and 0.7 (the default is 0.56)

This parameter defines the minimal coverage for estimated ellipses to get extracted.

That is the ratio of the estimated circumference and the number of extracted arc pixels. Ellipses which underrun this threshold won't get extracted. Too small values cause extraction of ellipses with randomly matching arcs. Also this threshold shouldn't be set to values greater than 0.7, since only well fitting parts of a ellipses are extracted. Therefore even a completely present ellipse may get only 70%% coverage. reasonable values are

  0.2 <= minCoverage <= 0.7
  

Best compromise between accuracy and tolerance is a value between 0.2 and 0.4 (the default is 0.25) Note: Very close and similar ellipses are sometimes merged to one ellipse which shows more than 100%% coverage.

This parameter is a threshold for the gap angle check.

Arcs with a gap smaller than this value are considered close enough to have a continous transition. Arcs with greater gaps must pass the additional gap angle check. Too large values cause detection failures. reasonable values are

  1 <= minGAPangleDistance <= 3
  

Best results were obtained with a value of 2 (the default).

The minimum length a line must have to get extracted.

The parameter minLineLen is used as threshold, smaller lines will be ignored. possible values are

  minLineLen >= 3 (pixel)
  

Values greater than 3 will strongly decrease the number of extracted lines and therefore speed up the following extraction stages. For most circles the optimal value lies between 5 and 7. The default is 6

This parameter defines the minimal matching ratio of the estimated ellipse radii of two extended arcs.

ExtArc pairs which underrun this threshold won't be combined to an ellipse. Too small values cause detection failures. reasonable values are

  0.5 <= minRadiusMatchRatio <= 0.95
  

Large values cause stricter extArc matching checks whereas small values allow more tolerance. Best compromise between accuracy and tolerance is a value between 0.7 and 0.9 (the default is 0.8)

The minimum length a line segment must have to be detected.

The parameter minSegmLen is used as threshold, smaller segments will be ignored. Values greater than 2 strongly decrease the number of detected segments and the size of the segment lists. possible values are

  minSegmLen >= 2 (pixel)
  

Values greater than 2 result in smaller segment lists and therefore allow slightly faster line detection. But mostly good line detection is more important than a small speedup, so don't change this parameter unless there is a good reason to do so. The default is 2

This constant defines how much the value of two adjacent pixels may differ and still be considered pixels of the same segment.

A segmentTolerance of 0 will only group pixels of the same value to one segment. When analyzing binary maps such as edge-images a value of 0 should be used. possible values are

  0 <= segmentTolerance <= 254
  

Higher segmentTolerance values allow non-binary images to be analysed but may also result in wrong segment start/end detection. The default is 0


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

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