Fawkes API
Fawkes Development Version
fc_accum.h
1
/***************************************************************************
2
* fc_accum.h - Header for 'fitted circle' accumulator
3
* used by Randomized Stable Circle Fitting Algorithm
4
*
5
* Created: Fri Sep 09 22:47:55 2005
6
* Copyright 2005 Hu Yuxiao <Yuxiao.Hu@rwth-aachen.de>
7
*
8
****************************************************************************/
9
10
/* This program is free software; you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation; either version 2 of the License, or
13
* (at your option) any later version. A runtime exception applies to
14
* this software (see LICENSE.GPL_WRE file mentioned below for details).
15
*
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU Library General Public License for more details.
20
*
21
* Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22
*/
23
24
#ifndef _FIREVISION_MODELS_SHAPE_ACCUMULATORS_FC_ACCUM_H_
25
#define _FIREVISION_MODELS_SHAPE_ACCUMULATORS_FC_ACCUM_H_
26
27
#include <fvmodels/shape/circle.h>
28
#include <fvutils/base/types.h>
29
#include <utils/math/types.h>
30
31
namespace
firevision {
32
33
class
FittedCircle
34
{
35
private
:
36
static
const
float
TOO_SMALL_DELTA;
37
38
private
:
39
int
count;
40
/// @cond INTERNALS
41
struct
circle_matrix
42
{
43
float
A00, A01, A02;
44
float
A10, A11, A12;
45
float
A20, A21, A22;
46
47
float
b0, b1, b2;
48
} circle_matrices[2];
49
/// @endcond
50
int
current_circle;
51
bool
point_added;
52
53
public
:
54
FittedCircle
(
void
);
55
~FittedCircle
(
void
);
56
57
void
reset
(
void
);
58
float
addPoint
(
const
fawkes::upoint_t
&);
// add a new point
59
// and return the distance from it to the fitted circle
60
void
removePoint
(
const
fawkes::upoint_t
&);
// remove a point
61
62
float
distanceTo
(
const
fawkes::upoint_t
&,
bool
current =
true
);
63
64
void
commit
(
void
);
65
int
getCount
(
void
)
const
;
66
Circle
*
getCircle
(
void
)
const
;
67
68
private
:
69
Circle
*fitCircle(circle_matrix *p)
const
;
70
};
71
72
}
// end namespace firevision
73
74
#endif
firevision::Circle
Definition:
circle.h:47
firevision::FittedCircle::distanceTo
float distanceTo(const fawkes::upoint_t &, bool current=true)
Distance.
Definition:
fc_accum.cpp:139
fawkes::upoint_t
Point with cartesian coordinates as unsigned integers.
Definition:
types.h:33
firevision::FittedCircle::reset
void reset(void)
Reset.
Definition:
fc_accum.cpp:51
firevision::FittedCircle::removePoint
void removePoint(const fawkes::upoint_t &)
Remove point.
Definition:
fc_accum.cpp:110
firevision::FittedCircle::addPoint
float addPoint(const fawkes::upoint_t &)
Add point.
Definition:
fc_accum.cpp:69
firevision::FittedCircle::~FittedCircle
~FittedCircle(void)
Destructor.
Definition:
fc_accum.cpp:45
firevision::FittedCircle::FittedCircle
FittedCircle(void)
Constructor.
Definition:
fc_accum.cpp:39
firevision::FittedCircle::commit
void commit(void)
Commit.
Definition:
fc_accum.cpp:155
firevision::FittedCircle::getCircle
Circle * getCircle(void) const
Get circle.
Definition:
fc_accum.cpp:177
firevision::FittedCircle::getCount
int getCount(void) const
Get count.
Definition:
fc_accum.cpp:168
src
libs
fvmodels
shape
accumulators
fc_accum.h
Generated by
1.8.16