Basic Image AlgorithmS Library
2.8.0
|
A 3x3 matrix representing a conic (cone/plane intersection) More...
#include <Geometry/Conic2D.hh>
Public Types | |
enum | ConicType { Unknown =0, WholePlane, Ellipse, Parabola, Hyperbola, SingleLine, DoubleLine, Point, Empty } |
Public Member Functions | |
void | AddDebugLevel (const long int lv) |
void | AddDebugLevel (const std::string &name) |
Conic2D () | |
default constructor sets all fields to zero More... | |
Conic2D (const MatrixInitType &i) | |
set default matrix values More... | |
Conic2D (const Matrix3x3< CONIC2D_TYPE > &m) | |
copy constructor uses Conic2D::operator= More... | |
Conic2D (const Matrix< CONIC2D_TYPE > &m) | |
copy constructor uses Conic2D::operator= More... | |
bool | DebugLevelIsSet (const long int lv) const |
bool | DebugLevelIsSet (const std::string &name) const |
void | Draw (Image< unsigned char > &img) const |
draws conic into an image using a brute force method More... | |
bool | EllipsoidSilhouetteToGauss (const double &ProbBorder, HomgPoint2D &Center, double &NormalizationFactor) |
assign a probability of a gaussian distribution to a conic to measure probabilities in the image plane More... | |
void | GetAbsMaxMin (CONIC2D_TYPE &max, CONIC2D_TYPE &min) const |
void | GetColumn (const unsigned int col, Vector3< CONIC2D_TYPE > &r) const |
extract one column ('Spalte') from this matrix (for convenience) More... | |
BIAS::Vector3< CONIC2D_TYPE > | GetColumn (const unsigned int col) const |
ConicType | GetConicType () const |
return the type of point conic of (*this) More... | |
CONIC2D_TYPE * | GetData () |
const CONIC2D_TYPE * | GetData () const |
int | GetDebugLevel () const |
std::ostream & | GetDebugStream () const |
void | GetDebugStream (std::ostream &os) const |
CONIC2D_TYPE | GetDeterminant () const |
returns the Determinant |A| of this More... | |
Conic2D | GetDualConic (bool UseSVD=false) const |
returns the dual of this conic, which is the inverse More... | |
bool | GetEllipseParameters (HomgPoint2D &Center, double &dAngle, double &radius_a, double &radius_b) const |
computes explicit ellipse representation More... | |
bool | GetEllipseParameters (double center[2], double a[2], double b[2]) const |
returns the center and the two halfaxes of the conic if feasible (f.e. More... | |
int | GetInverse (Matrix3x3< CONIC2D_TYPE > &inv) const |
Matrix inversion: inverts this and stores resulty in argument inv. More... | |
int | GetLinearizedOffset (const HomgPoint2D &point, HomgPoint2D &distance, const HomgPoint2DCov &pointcov=HomgPoint2DCov(MatrixIdentity)) const |
compute approximate offset of a measured point to a known conic More... | |
int | GetLines (std::vector< HomgLine2D > &lines) const |
retrieve one or two lines from a degenerate point conic More... | |
CONIC2D_TYPE | GetMax () const |
void | GetMaxMin (CONIC2D_TYPE &max, CONIC2D_TYPE &min) const |
return biggest and smallest entry More... | |
CONIC2D_TYPE | GetMin () const |
unsigned | GetNumElements () const |
int | GetPoint (HomgPoint2D &thepoint) const |
if the conic consists of a single point (degenerate case, rank=2) retrieve this point More... | |
bool | GetPointAndCovariance (HomgPoint2D ¢er, Matrix2x2< CONIC2D_TYPE > &cov) const |
reconstructs center and covariance matrix from conic More... | |
double | GetPointDistance (const HomgPoint2D &point, HomgPoint2D &distance, const HomgPoint2DCov &pointcov=HomgPoint2DCov(MatrixIdentity)) const |
return the squared mahalanobis distance of the point to the conic More... | |
void | GetRow (const unsigned int row, Vector3< CONIC2D_TYPE > &r) const |
extract one row ('Zeile') from ths matrix (for convenience) More... | |
Vector3< CONIC2D_TYPE > | GetRow (const unsigned int row) const |
unsigned int | GetSignature () const |
computes signature of matrix, (no. More... | |
int | GetTangentPoints (const HomgPoint2D &x, HomgPoint2D &p1, HomgPoint2D &p2) const |
Returns the two points p1 and p2 on the conic subject to the constraint that the two tangents at the points p1 and p2 intersect in the point x. More... | |
int | IntersectConic (const Conic2D &otherconic, std::vector< HomgPoint2D > &intersectionPoints) const |
compute intersection of 2 conics More... | |
int | IntersectConicProper (const Conic2D &otherconic, std::vector< HomgPoint2D > &intersectionPoints) const |
compute intersection of 2 non-degenerate (full-rank) conics More... | |
int | IntersectLine (const HomgLine2D &theline, std::vector< HomgPoint2D > &intersectionPoints) const |
compute intersection of a conic with a line More... | |
bool | IntersectsCircle (const HomgPoint2D &C, double Radius) const |
returns true if the given Conic intersects with the circle of radius Radius around point C, false otherwise More... | |
int | InvertIP () |
In place matrix conversion. More... | |
bool | IsDoubleLine () const |
check whether this conic is a double line More... | |
bool | IsEllipse () const |
check whether this conic is an ellipse More... | |
bool | IsEmpty () const |
check whether this conic contains no points More... | |
bool | IsHyperbola () const |
check whether this conic is a hyperbola More... | |
bool | IsIdentity (const CONIC2D_TYPEeps=std::numeric_limits< CONIC2D_TYPE >::epsilon()) const |
bool | IsParabola () const |
check whether this conic is a parabola More... | |
bool | IsPoint () const |
check whether this conic is a point More... | |
bool | IsProper () const |
is this a proper conic (parabola/hyperbola/ellipse) with rank3 or some of the degenerate cases ? More... | |
bool | IsSingleLine () const |
check whether this conic is a single line More... | |
bool | IsZero (const CONIC2D_TYPEeps=std::numeric_limits< CONIC2D_TYPE >::epsilon()) const |
bool | Load (const std::string &fname) |
double | LocatePoint (const HomgPoint2D &point2D) const |
determines if the point is inside/on/outside the conic More... | |
void | MakeSymmetric () |
void | Mult (const Vector3< CONIC2D_TYPE > &argvec, Vector3< CONIC2D_TYPE > &destvec) const |
matrix - vector multiplicate this matrix with Vector3, storing the result in destvec calculates: destvec = (this Matrix) * argvec More... | |
void | Mult (const Matrix3x3< CONIC2D_TYPE > &argmat, Matrix3x3< CONIC2D_TYPE > &destmat) const |
matrix-matrix multiplication with other Matrix3x3, storing the result in destmat calculates: destmat = (this mat) * argmat More... | |
void | Mult (const Matrix3x4< CONIC2D_TYPE > &argmat, Matrix3x4< CONIC2D_TYPE > &destmat) const |
long int | Name2DebugLevel (const std::string &name) const |
looks up a debuglevel in the internal map, returns 0 if not found More... | |
long int | NewDebugLevel (const std::string &name) |
creates a new debuglevel More... | |
bool | Normalize () |
sets mean of first 2 diag elements to positive value, so that LocatePoint(x)<0 means x is in conic More... | |
double | NormFrobenius () const |
CONIC2D_TYPE | NormL1 () const |
double | NormL2 () const |
bool | operator!= (const Matrix3x3< CONIC2D_TYPE > &arg) const |
Matrix3x3< CONIC2D_TYPE > & | operator*= (const Matrix3x3< CONIC2D_TYPE > &arg) |
woelk 11/2007 (c) www.vision-n.de More... | |
Matrix3x3< CONIC2D_TYPE > & | operator*= (const CONIC2D_TYPE &arg) |
woelk 11/2007 (c) www.vision-n.de More... | |
Matrix3x3< CONIC2D_TYPE > & | operator+= (const Matrix3x3< CONIC2D_TYPE > &arg) |
Matrix3x3< CONIC2D_TYPE > & | operator-= (const Matrix3x3< CONIC2D_TYPE > &arg) |
Matrix3x3< CONIC2D_TYPE > & | operator/= (const CONIC2D_TYPE &arg) |
Conic2D & | operator= (const Matrix< CONIC2D_TYPE > &m) |
bool | operator== (const Matrix3x3< CONIC2D_TYPE > &arg) const |
CONIC2D_TYPE * | operator[] (const unsigned row) |
const CONIC2D_TYPE * | operator[] (const unsigned row) const |
void | PrintDebugLevel (std::ostream &os=std::cout) const |
void | RemoveDebugLevel (const long int lv) |
void | RemoveDebugLevel (const std::string &name) |
bool | Save (const std::string &fname) const |
void | Scale (const CONIC2D_TYPE &scalar, Matrix3x3< CONIC2D_TYPE > &destmat) const |
scalar-matrix multiplication More... | |
void | SetAsCrossProductMatrix (const Vector3< CONIC2D_TYPE > &vec) |
Sets matrix from vector as cross product matrix of this vector. More... | |
void | SetAsCrossProductMatrix (const CONIC2D_TYPE &x, const CONIC2D_TYPE &y, const CONIC2D_TYPE &z) |
Sets matrix from vector as cross product matrix of a vector. More... | |
void | SetColumn (const unsigned int col, const Vector3< CONIC2D_TYPE > &c) |
void | SetDebugLevel (const long int lv) |
void | SetDebugLevel (const std::string &name) |
void | SetDebugStream (const std::ostream &os) |
void | SetEllipse (const HomgPoint2D &Center, const double &dAngle, const double &radius_a, const double &radius_b) |
construct an ellipse with explicit parameters More... | |
void | SetFromColumnVectors (const BIAS::Vector3< CONIC2D_TYPE > &v0, const BIAS::Vector3< CONIC2D_TYPE > &v1, const BIAS::Vector3< CONIC2D_TYPE > &v2) |
set this matrix from 3 vectors each representating a column More... | |
void | SetFromRowVectors (const BIAS::Vector3< CONIC2D_TYPE > &v0, const BIAS::Vector3< CONIC2D_TYPE > &v1, const BIAS::Vector3< CONIC2D_TYPE > &v2) |
set this matrix from 3 vectors, each representating a row More... | |
void | SetFromVector (const TNT::Vector< CONIC2D_TYPE > &vec) |
sets the diagonalelements of this 3x3 Matrix rowwise with the values of the 9 (x1) vector More... | |
void | SetIdentity () |
set the elements of this matrix to the identity matrix (possibly overriding the inherited method) More... | |
void | SetPointAndCovariance (const HomgPoint2D ¢er, const Matrix2x2< CONIC2D_TYPE > &cov, const double &dScale=GAUSS2D_CONFIDENCE_39_PERCENT) |
constructs a conic from a point and a covariance matrix More... | |
void | SetQuadricProjection (const Quadric3D &Q, const PMatrix &P, bool UseSVD=false) |
constructs a conic that is a projection of the quadric Q using camera matrix P More... | |
void | SetRow (const unsigned int row, const Vector3< CONIC2D_TYPE > &r) |
void | SetSingleLine (HomgLine2D theline) |
create a degenerate point conic consisting only of one line More... | |
void | SetTwoLines (HomgLine2D theline1, HomgLine2D theline2) |
create a degenerate point conic consisting of two lines More... | |
void | SetZero () |
void | ShowDebugLevel (std::ostream &os=std::cout) const |
prints all internally known debuglevels More... | |
CONIC2D_TYPE | Trace () const |
return the trace of the matrix More... | |
Matrix3x3< CONIC2D_TYPE > | Transpose () const |
returns transposed matrix tested 12.06.2002 More... | |
void | Transpose (const Matrix3x3< CONIC2D_TYPE > &arg) |
sets this as transposed arg, fw More... | |
void | TransposedMult (const Vector3< CONIC2D_TYPE > &argvec, Vector3< CONIC2D_TYPE > &destvec) const |
multiplies matrix from left with transposed argvec, resulting in transposed destvec More... | |
void | TransposeIP () |
tranpose this matrix "in place" example: 0 1 2 –> 0 3 6 3 4 5 –> 1 4 7 6 7 8 –> 2 5 8 More... | |
Static Public Member Functions | |
static long int | GetGlobalDebugLevel () |
static void | SetGlobalDebugLevel (long int lev) |
Protected Member Functions | |
long | ConsumeNextFreeDebuglevel_ () |
returns the next available debuglevel More... | |
double | GetDiscriminant () const |
Protected Attributes | |
long int | _liDebugLevel |
long int | _liNextDebugLevel |
new concept, debuglevel are managed here in the debug class More... | |
std::map< std::string, long int > | _String2Debuglevel |
CONIC2D_TYPE | Data_ [9] |
Static Protected Attributes | |
static std::ostream | _zDebugStream |
static long int | GlobalDebugLevel = 0 |
A 3x3 matrix representing a conic (cone/plane intersection)
A conic is a (contour) line in P2, which resulted from the projection of a quadric (see Quadric3D) of P3. Conics are ellipses, hyperbolas, ... Each point x of the conic C fulfills x^T C x = 0 which is a quadratic equation in the components of x. If nothing else is mentioned, we mean point conics, not line conics.
Definition at line 71 of file Conic2D.hh.
Enumerator | |
---|---|
Unknown | |
WholePlane | |
Ellipse | |
Parabola | |
Hyperbola | |
SingleLine | |
DoubleLine | |
Point | |
Empty |
Definition at line 76 of file Conic2D.hh.
|
inline |
default constructor sets all fields to zero
Definition at line 80 of file Conic2D.hh.
|
inlineexplicit |
set default matrix values
Definition at line 83 of file Conic2D.hh.
|
inline |
copy constructor uses Conic2D::operator=
Definition at line 87 of file Conic2D.hh.
References BIAS::Matrix3x3< T >::operator=().
|
inline |
copy constructor uses Conic2D::operator=
Definition at line 91 of file Conic2D.hh.
References BIAS::Matrix3x3< T >::operator=().
|
inlineinherited |
Definition at line 355 of file Debug.hh.
Referenced by BIAS::GLProjectionParametersBase::AddDebugLevel(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::FilterBase< InputStorageType, OutputStorageType >::FilterBase(), BIAS::ShowCamWxVideoSourceFactory::OpenDevice(), and BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph().
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineinherited |
Definition at line 341 of file Debug.hh.
Referenced by BIAS::GenSynthMatches::_AddUniformDistributedOutliers(), BIAS::GenSynthMatches::_CreateCamMovement(), BIAS::GenSynthMatches::_CreateStatic2DPoints(), BIAS::UnscentedTransform::ComputeSigmaPoints_(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::GenSynthMatches::GetGTNormalizedF(), BIAS::MonteCarloTransform::GetSamples_(), and BIAS::MonteCarloTransform::Transform().
|
inlineinherited |
void Conic2D::Draw | ( | Image< unsigned char > & | img | ) | const |
draws conic into an image using a brute force method
Runs across all pixels and checks for zero crossings of LocatePoint. Really slow, but works for ANY type. If the conic is an ellipse, a more elegant way of drawing can be found in ImageDraw
Definition at line 221 of file Conic2D.cpp.
References BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetWidth(), and BIAS::HomgPoint2D::Homogenize().
bool Conic2D::EllipsoidSilhouetteToGauss | ( | const double & | ProbBorder, |
HomgPoint2D & | Center, | ||
double & | NormalizationFactor | ||
) |
assign a probability of a gaussian distribution to a conic to measure probabilities in the image plane
Ellipsoids in 3D space represent iso surfaces of gaussian normal distributions (e.g. of the 99% volume). Projecting a silhouette of such an ellipsoid gives a conic (e.g. an ellipse) in the image. If we want to interpret the conic as the covariance matrix of a gauss within the image plane, we have to convert it in such a way that the ellipse center yields zero and the border (the former conic line) a different value than zero, e.g. a value corresponding to 99%.
Afterwards, you can simply compute NormalizationFactor * exp(this->LocatePoint(x)) to compute the probability at x
still have to test this !
Definition at line 500 of file Conic2D.cpp.
|
inherited |
|
inherited |
extract one column ('Spalte') from this matrix (for convenience)
|
inlineinherited |
Definition at line 202 of file Matrix3x3.hh.
Conic2D::ConicType Conic2D::GetConicType | ( | ) | const |
return the type of point conic of (*this)
Definition at line 186 of file Conic2D.cpp.
References DoubleLine, Ellipse, Empty, Hyperbola, Parabola, Point, SingleLine, and WholePlane.
Referenced by GetLines(), and IntersectConic().
|
inlineinherited |
Definition at line 99 of file Matrix3x3.hh.
|
inlineinherited |
Definition at line 103 of file Matrix3x3.hh.
|
inlineinherited |
Definition at line 332 of file Debug.hh.
Referenced by BIAS::listenthread(), BIAS::Image< StorageType >::operator=(), and BIAS::ImageBase::operator=().
|
inlineinherited |
|
inlineinherited |
|
inherited |
returns the Determinant |A| of this
|
protected |
Definition at line 43 of file Conic2D.cpp.
Conic2D Conic2D::GetDualConic | ( | bool | UseSVD = false | ) | const |
returns the dual of this conic, which is the inverse
Definition at line 672 of file Conic2D.cpp.
References BIAS::SVD::GetU(), BIAS::SVD::GetV(), BIAS::SVD::Invert(), BIAS::MatrixZero, BIAS::Matrix3x3< T >::NormFrobenius(), BIAS::SVD::RelNullspaceDim(), and BIAS::Matrix< T >::Transpose().
bool Conic2D::GetEllipseParameters | ( | HomgPoint2D & | Center, |
double & | dAngle, | ||
double & | radius_a, | ||
double & | radius_b | ||
) | const |
computes explicit ellipse representation
if the given conic is an ellipse, the ellipse parameters are extracted and returned in the functions parameters
dAngle | rotation angle in radiant (math. positive) |
radius_a | radius in (originally) x direction |
radius_b | radius in (originally) y direction |
Definition at line 432 of file Conic2D.cpp.
bool Conic2D::GetEllipseParameters | ( | double | center[2], |
double | a[2], | ||
double | b[2] | ||
) | const |
returns the center and the two halfaxes of the conic if feasible (f.e.
for drawing with the class ImageDraw)
Definition at line 400 of file Conic2D.cpp.
References BIAS::Matrix2x2< T >::EigenvalueDecomposition().
|
inlinestaticinherited |
|
inherited |
Matrix inversion: inverts this and stores resulty in argument inv.
Returns -1 if determinant is zero, 0 on success.
int Conic2D::GetLinearizedOffset | ( | const HomgPoint2D & | point, |
HomgPoint2D & | distance, | ||
const HomgPoint2DCov & | pointcov = HomgPoint2DCov(MatrixIdentity) |
||
) | const |
compute approximate offset of a measured point to a known conic
This uses the linearization of a quadratic equation under the assumption that the point is close to the conic. With increasing outside distance to the conic, the offset is underestimated. See [Kanatani96:Statistical Optimization..., p.169]
Definition at line 1297 of file Conic2D.cpp.
References BIAS::Matrix3x3< T >::Mult(), BIAS::Vector3< T >::NormL2(), and BIAS::Vector3< T >::ScalarProduct().
int Conic2D::GetLines | ( | std::vector< HomgLine2D > & | lines | ) | const |
retrieve one or two lines from a degenerate point conic
Definition at line 865 of file Conic2D.cpp.
References BIAS::Matrix2x2< T >::det(), GetConicType(), BIAS::Vector3< T >::GetSkewSymmetricMatrix(), BIAS::Matrix3x3< T >::NormFrobenius(), BIAS::Vector3< T >::NormL2(), BIAS::Matrix3x3< T >::NormL2(), BIAS::Vector3< T >::OuterProduct(), and BIAS::Matrix3x3< T >::Transpose().
Referenced by IntersectConic(), and IntersectConicProper().
|
inherited |
|
inherited |
return biggest and smallest entry
|
inherited |
|
inlineinherited |
Definition at line 107 of file Matrix3x3.hh.
int Conic2D::GetPoint | ( | HomgPoint2D & | thepoint | ) | const |
if the conic consists of a single point (degenerate case, rank=2) retrieve this point
Definition at line 211 of file Conic2D.cpp.
References BIAS::SVD::GetNullvector(), BIAS::HomgPoint2D::Homogenize(), and BIAS::Vector3< T >::Normalize().
Referenced by IntersectConic().
bool Conic2D::GetPointAndCovariance | ( | HomgPoint2D & | center, |
Matrix2x2< CONIC2D_TYPE > & | cov | ||
) | const |
reconstructs center and covariance matrix from conic
Definition at line 368 of file Conic2D.cpp.
double Conic2D::GetPointDistance | ( | const HomgPoint2D & | point, |
HomgPoint2D & | distance, | ||
const HomgPoint2DCov & | pointcov = HomgPoint2DCov(MatrixIdentity) |
||
) | const |
return the squared mahalanobis distance of the point to the conic
This function can be used for the decision whether a noisy point lies on a conic curve or not (e.g. threshold the result at 4.0).
Definition at line 1316 of file Conic2D.cpp.
References BIAS::Vector3< T >::ScalarProduct().
|
inherited |
extract one row ('Zeile') from ths matrix (for convenience)
|
inlineinherited |
Definition at line 196 of file Matrix3x3.hh.
unsigned int Conic2D::GetSignature | ( | ) | const |
computes signature of matrix, (no.
of neg. eigenvalues) - (no. of pos. eigenvalues) or vice versa if there are more pos. eigenvalues
Definition at line 550 of file Conic2D.cpp.
References BIAS::Matrix3x3< T >::GetRow(), BIAS::SVD::GetS(), and BIAS::SVD::GetVT().
int Conic2D::GetTangentPoints | ( | const HomgPoint2D & | x, |
HomgPoint2D & | p1, | ||
HomgPoint2D & | p2 | ||
) | const |
Returns the two points p1 and p2 on the conic subject to the constraint that the two tangents at the points p1 and p2 intersect in the point x.
Returns the number of tangent points (1 or 2) or -1 on error
Definition at line 725 of file Conic2D.cpp.
References BIAS::HomgPoint2D::Set(), and BIAS::Matrix3x3< T >::SetAsCrossProductMatrix().
int Conic2D::IntersectConic | ( | const Conic2D & | otherconic, |
std::vector< HomgPoint2D > & | intersectionPoints | ||
) | const |
compute intersection of 2 conics
Definition at line 1019 of file Conic2D.cpp.
References BIAS::Equal(), GetConicType(), GetLines(), GetPoint(), IntersectConic(), IntersectLine(), IsEmpty(), IsPoint(), IsProper(), LocatePoint(), BIAS::Vector3< T >::NormL2(), and BIAS::Point.
Referenced by IntersectConic().
int Conic2D::IntersectConicProper | ( | const Conic2D & | otherconic, |
std::vector< HomgPoint2D > & | intersectionPoints | ||
) | const |
compute intersection of 2 non-degenerate (full-rank) conics
Definition at line 1112 of file Conic2D.cpp.
References BIAS::Equal(), BIAS::FMatrixEstimation::GetDetPolynomial(), GetLines(), IsProper(), BIAS::Matrix3x3< T >::NormFrobenius(), and BIAS::PolynomialSolve::Solve().
int Conic2D::IntersectLine | ( | const HomgLine2D & | theline, |
std::vector< HomgPoint2D > & | intersectionPoints | ||
) | const |
compute intersection of a conic with a line
Definition at line 1206 of file Conic2D.cpp.
References BIAS::Vector3< T >::GetSkewSymmetricMatrix(), BIAS::HomgPoint2D::Homogenize(), and BIAS::Vector3< T >::NormL2().
Referenced by IntersectConic().
bool Conic2D::IntersectsCircle | ( | const HomgPoint2D & | C, |
double | Radius | ||
) | const |
returns true if the given Conic intersects with the circle of radius Radius around point C, false otherwise
This is a contour line intersection ! Does not test whether circle lies "in" conic or vice versa !
Definition at line 580 of file Conic2D.cpp.
References BIAS::PolynomialSolve::CheckCoefficients(), and BIAS::PolynomialSolve::HasRealSolution().
|
inherited |
In place matrix conversion.
Returns -1 if determinant is zero, 0 on success.
bool Conic2D::IsDoubleLine | ( | ) | const |
check whether this conic is a double line
Definition at line 48 of file Conic2D.cpp.
bool Conic2D::IsEllipse | ( | ) | const |
check whether this conic is an ellipse
Definition at line 93 of file Conic2D.cpp.
bool Conic2D::IsEmpty | ( | ) | const |
check whether this conic contains no points
Definition at line 164 of file Conic2D.cpp.
Referenced by IntersectConic().
bool Conic2D::IsHyperbola | ( | ) | const |
check whether this conic is a hyperbola
Definition at line 142 of file Conic2D.cpp.
|
inherited |
bool Conic2D::IsParabola | ( | ) | const |
check whether this conic is a parabola
Definition at line 121 of file Conic2D.cpp.
bool Conic2D::IsPoint | ( | ) | const |
check whether this conic is a point
Definition at line 78 of file Conic2D.cpp.
Referenced by IntersectConic().
bool Conic2D::IsProper | ( | ) | const |
is this a proper conic (parabola/hyperbola/ellipse) with rank3 or some of the degenerate cases ?
Definition at line 179 of file Conic2D.cpp.
Referenced by IntersectConic(), and IntersectConicProper().
bool Conic2D::IsSingleLine | ( | ) | const |
check whether this conic is a single line
Definition at line 63 of file Conic2D.cpp.
|
inherited |
|
inherited |
|
inline |
determines if the point is inside/on/outside the conic
for "closed" conics, such as ellipses, call this function for a point to determine its position relative to the conic: <0 means: inside the conic >0 means: outside the conic =0 means on the border line
Definition at line 144 of file Conic2D.hh.
Referenced by IntersectConic().
|
inherited |
|
inlineinherited |
matrix - vector multiplicate this matrix with Vector3, storing the result in destvec calculates: destvec = (this Matrix) * argvec
|
inlineinherited |
matrix-matrix multiplication with other Matrix3x3, storing the result in destmat calculates: destmat = (this mat) * argmat
|
inherited |
|
inlineinherited |
|
inlineinherited |
creates a new debuglevel
Definition at line 474 of file Debug.hh.
Referenced by BIAS::COSAC< SolutionType >::COSAC(), BIAS::ProjectionParametersPerspectiveDepth::Init(), BIAS::MonteCarloTransform::MonteCarloTransform(), BIAS::PMatrixEstimation::PMatrixEstimation(), BIAS::PreemptiveRANSAC< SolutionType >::PreemptiveRANSAC(), BIAS::RANSACPreKnowledge< SolutionType >::RANSACPreKnowledge(), BIAS::ROI::ROI(), BIAS::RotationAveraging::RotationAveraging(), BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph(), BIAS::ThreeDOutOpenSceneGraph::ThreeDOutOpenSceneGraph(), BIAS::Triangulation::Triangulation(), and BIAS::UnscentedTransform::UnscentedTransform().
|
inline |
sets mean of first 2 diag elements to positive value, so that LocatePoint(x)<0 means x is in conic
Definition at line 149 of file Conic2D.hh.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Definition at line 255 of file Matrix3x3.hh.
|
inlineinherited |
Definition at line 274 of file Matrix3x3.hh.
|
inlineinherited |
woelk 11/2007 (c) www.vision-n.de
Definition at line 143 of file Matrix3x3.hh.
|
inherited |
woelk 11/2007 (c) www.vision-n.de
|
inherited |
|
inherited |
|
inherited |
Definition at line 225 of file Conic2D.hh.
References BIAS::Matrix3x3< T >::operator=().
|
inherited |
|
inlineinherited |
Definition at line 91 of file Matrix3x3.hh.
|
inlineinherited |
Definition at line 95 of file Matrix3x3.hh.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inherited |
|
inlineinherited |
scalar-matrix multiplication
|
inherited |
Sets matrix from vector as cross product matrix of this vector.
|
inherited |
Sets matrix from vector as cross product matrix of a vector.
with components (x, y, z)
|
inherited |
|
inlineinherited |
Definition at line 318 of file Debug.hh.
Referenced by BIAS::ShowCamWxVideoSourceFactory::CreateBumbleBee(), BIAS::ShowCamWxVideoSourceFactory::CreateDCAM(), BIAS::VideoSource_MDcam::ScanBus(), BIAS::GLProjectionParametersBase::SetDebugLevel(), BIAS::VideoSource_Disk::VideoSource_Disk(), BIAS::VideoSource_DV2::VideoSource_DV2(), BIAS::VideoSource_DV::VideoSource_DV_Internal_Init_(), and BIAS::VideoSource_V4L::VideoSource_V4L().
|
inlineinherited |
|
inlineinherited |
void Conic2D::SetEllipse | ( | const HomgPoint2D & | Center, |
const double & | dAngle, | ||
const double & | radius_a, | ||
const double & | radius_b | ||
) |
construct an ellipse with explicit parameters
radius_a | radius in (originally) x direction |
radius_b | radius in (originally) y direction |
dAngle | rotation angle in radiant (math. positive) center of ellipse |
Definition at line 299 of file Conic2D.cpp.
References BIAS::Matrix3x3< T >::SetIdentity().
|
inherited |
set this matrix from 3 vectors each representating a column
|
inherited |
set this matrix from 3 vectors, each representating a row
|
inherited |
sets the diagonalelements of this 3x3 Matrix rowwise with the values of the 9 (x1) vector
|
inlinestaticinherited |
|
inlineinherited |
set the elements of this matrix to the identity matrix (possibly overriding the inherited method)
void Conic2D::SetPointAndCovariance | ( | const HomgPoint2D & | center, |
const Matrix2x2< CONIC2D_TYPE > & | cov, | ||
const double & | dScale = GAUSS2D_CONFIDENCE_39_PERCENT |
||
) |
constructs a conic from a point and a covariance matrix
Definition at line 331 of file Conic2D.cpp.
References BIAS::Matrix2x2< T >::Invert(), and BIAS::HomgPoint2D::IsAtInfinity().
constructs a conic that is a projection of the quadric Q using camera matrix P
Definition at line 534 of file Conic2D.cpp.
References BIAS::Quadric3D::GetDualQuadric(), and BIAS::Matrix< T >::Transpose().
|
inherited |
void Conic2D::SetSingleLine | ( | HomgLine2D | theline | ) |
create a degenerate point conic consisting only of one line
Definition at line 1281 of file Conic2D.cpp.
References BIAS::Vector3< T >::NormL2(), and BIAS::Vector3< T >::OuterProduct().
void Conic2D::SetTwoLines | ( | HomgLine2D | theline1, |
HomgLine2D | theline2 | ||
) |
create a degenerate point conic consisting of two lines
Definition at line 1288 of file Conic2D.cpp.
References BIAS::Vector3< T >::NormL2(), and BIAS::Vector3< T >::OuterProduct().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
return the trace of the matrix
Definition at line 230 of file Matrix3x3.hh.
|
inherited |
returns transposed matrix tested 12.06.2002
|
inlineinherited |
sets this as transposed arg, fw
|
inlineinherited |
multiplies matrix from left with transposed argvec, resulting in transposed destvec
|
inlineinherited |
tranpose this matrix "in place" example: 0 1 2 –> 0 3 6 3 4 5 –> 1 4 7 6 7 8 –> 2 5 8
|
protectedinherited |
Definition at line 510 of file Debug.hh.
Referenced by BIAS::Debug::operator=(), and BIAS::ImageBase::operator=().
|
protectedinherited |
new concept, debuglevel are managed here in the debug class
Definition at line 516 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
protectedinherited |
Definition at line 517 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
staticprotectedinherited |
Definition at line 511 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
protectedinherited |
Definition at line 282 of file Matrix3x3.hh.
|
staticprotectedinherited |