latest version v1.9 - last update 10 Apr 2010 |
the parameters for the class fastCircleExtraction More...
#include <ltiFastCircleExtraction.h>
Public Member Functions | |
parameters () | |
parameters (const parameters &other) | |
~parameters () | |
const char * | getTypeName () const |
parameters & | copy (const parameters &other) |
parameters & | operator= (const parameters &other) |
virtual functor::parameters * | clone () 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 | minExtArcMatchRatio |
bool | oldExtArcCheck |
int | oldExtArcThreshold |
float | maxCenterMismatch |
float | minRadiusMatchRatio |
float | minCoverage |
the parameters for the class fastCircleExtraction
lti::fastCircleExtraction::parameters::parameters | ( | ) |
default constructor
Reimplemented from lti::featureExtractor::parameters.
lti::fastCircleExtraction::parameters::parameters | ( | const parameters & | other | ) |
copy constructor
other | the parameters object to be copied |
Reimplemented from lti::featureExtractor::parameters.
lti::fastCircleExtraction::parameters::~parameters | ( | ) | [virtual] |
destructor
Reimplemented from lti::featureExtractor::parameters.
virtual functor::parameters* lti::fastCircleExtraction::parameters::clone | ( | ) | const [virtual] |
returns a pointer to a clone of the parameters
Reimplemented from lti::featureExtractor::parameters.
parameters& lti::fastCircleExtraction::parameters::copy | ( | const parameters & | other | ) |
copy the contents of a parameters object
other | the parameters object to be copied |
Reimplemented from lti::featureExtractor::parameters.
const char* lti::fastCircleExtraction::parameters::getTypeName | ( | ) | const [virtual] |
returns name of this type
Reimplemented from lti::featureExtractor::parameters.
parameters& lti::fastCircleExtraction::parameters::operator= | ( | const parameters & | other | ) |
copy the contents of a parameters object
other | the parameters object to be copied |
virtual bool lti::fastCircleExtraction::parameters::read | ( | ioHandler & | handler, | |
const bool | complete = true | |||
) | [virtual] |
read the parameters from the given ioHandler
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. |
Reimplemented from lti::functor::parameters.
virtual bool lti::fastCircleExtraction::parameters::write | ( | ioHandler & | handler, | |
const bool | complete = true | |||
) | const [virtual] |
write the parameters in the given ioHandler
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. |
Reimplemented from lti::functor::parameters.
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 one other 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 30
This parameter defines the maximum difference that the tangents of two arcs may have in relation to the tangents of the circle that these arcs represent.
In other words, this parameter affects the tolerance in terms of circle matching. Arc pairs which exceed this threshold won't be combined to an extended arc. Too large values result incorrect extended arcs and detection failures. reasonable values are
8.5 <= maxArcTangentError <= 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 12)
This parameter defines the maximum gap between the estimated circle centers of two extended arcs.
ExtArc pairs which exceed this threshold won't be combined to a circle. 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 1.5 and 4 (the default is 2.5)
This parameter defines the maximum distance between the start and end points of one arc and the estimated circle contour of the other arc.
Arc pairs which exceed this threshold won't be combined to an extended arc. Too large values cause detection failures. reasonable values are
1 <= maxExtArcMismatch <= 10
Small values cause stricter arc matching checks whereas large values allow more tolerance. Best compromise between accuracy and tolerance is a value between 1.5 and 4 (the default is 2.75)
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 2
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 15)
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 minimal coverage for estimated circles to get extracted.
That is the ratio of the estimated circumference and the number of extracted arc pixels. Circles which underrun this threshold won't get extracted. Too small values cause extraction of circles with randomly matching arcs. Also this threshold shouldn't be set to values greater than 0.7, since only well fitting parts of a circle are extracted. Therefore even a completely present circle may get only 70%% coverage. reasonable values are
0.2 <= minCoverage <= 0.7
Best compromise between accuracy and tolerance is a value between 0.3 and 0.5 (the default is 0.3) Note: Very close and similar circles are sometimes merged to one circle which shows more than 100%% coverage.
This parameter defines the minimal ratio of the estimated circle radii of two arcs.
Arc pairs which under-run this threshold won't be combined to an extended arc. Too small values cause detection failures. reasonable values are
0.5 <= minExtArcMatchRatio <= 0.95
Large values cause stricter arc 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 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 ratio of the estimated circle radii of two extended arcs.
ExtArc pairs which underrun this threshold won't be combined to a circle. 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.75)
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 parameter is a toggle to switch between the old and the new extended arc checks.
In general the new checks should be better, but in some situations the old check obtain better results. The old check required only one threshold parameter: oldExtArcThreshold
possible values are
true or false
(the default is false)
This parameter defines an admeasurement in terms of circle arc matching.
Arc pairs which exceed this threshold won't be combined to an extended arc. Too large values cause detection failures. The threshold check gets stricter with larger radii because of comparing squared distances. This is the main difference between the old and new ExtArc check. reasonable values are
50 <= oldExtArcThreshold <= 250
Small values cause stricter arc matching checks whereas large values allow more tolerance. Best compromise between accuracy and tolerance is a value between 80 and 120 (the default is 100)
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