Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
BIAS::EpipolarLine Class Reference

A class for representing epipolar lines with useful functions like ScanLine(). More...

#include <Geometry/EpipolarLine.hh>

+ Inheritance diagram for BIAS::EpipolarLine:
+ Collaboration diagram for BIAS::EpipolarLine:

Public Types

typedef HOMGLINE2D_TYPE value_type
 

Public Member Functions

void AddDebugLevel (const long int lv)
 
void AddDebugLevel (const std::string &name)
 
bool DebugLevelIsSet (const long int lv) const
 
bool DebugLevelIsSet (const std::string &name) const
 
HOMGLINE2D_TYPE Distance (const HomgPoint2D &point)
 calculates distance of a point from line More...
 
HOMGLINE2D_TYPE DistanceSquared (const HomgPoint2D &point)
 calculates squared distance of a point from line More...
 
template<class PixelType >
void Draw (Image< PixelType > &im)
 draws (*this) into image (only from Pinf to epipole More...
 
template<class PixelType >
void DrawWhole (Image< PixelType > &im)
 draws infinite line in image, not stopping at epipole More...
 
 EpipolarLine ()
 
 EpipolarLine (const EpipolarLine &line)
 
 EpipolarLine (const Vector3< HOMGLINE2D_TYPE > &vec)
 
double GetAngle () const
 angle to abszissa (-pi, pi] More...
 
virtual enum TEdge GetCloseEdge () const
 
virtual HomgPoint2DGetCloseIntersectionWithImageBorder ()
 
virtual HomgPoint2D GetCopyOfCloseIntersectionWithImageBorder () const
 
virtual HomgPoint2D GetCopyOfEpipole () const
 
virtual HomgPoint2D GetCopyOfFarIntersectionWithImageBorder () const
 
int GetDebugLevel () const
 
std::ostream & GetDebugStream () const
 
void GetDebugStream (std::ostream &os) const
 
virtual double GetDeltaR () const
 
double GetDx () const
 
double GetDy () const
 
virtual HomgPoint2DGetEpipole ()
 
virtual enum HomgPoint2D::EPosition GetEpipolePosition () const
 
virtual enum TEdge GetFarEdge () const
 
virtual HomgPoint2DGetFarIntersectionWithImageBorder ()
 
void GetImageBoundaries (double &minx, double &miny, double &maxx, double &maxy) const
 
virtual unsigned int GetImageHeight () const
 
virtual unsigned int GetImageWidth () const
 
bool GetIntersectionsWithImage (unsigned int width, unsigned int height, unsigned int coo[4])
 ! assumes line is given in pixel coo ! returns true if line intersects with image of given size returns intersections with image ( x1 = coo[0], y1 = coo[1], x2 = coo[2], y2 = coo[3] ) for usage with DrawLine More...
 
enum TLineType GetLineType () const
 return type, E_NE if 0 < slope < 45 degree NE_N if 45 < slop < 90 ... More...
 
virtual void GetNextLine (bool clockwise, EpipolarLine &next, double dist=1.0)
 returns next line with maximal possible distance without pixel loss More...
 
void GetPerpendicularLine (HomgPoint2D &point, HomgLine2D &perpline)
 return perpendicular line throug point More...
 
virtual double GetRMax () const
 distance epipole - far intersection with image border More...
 
virtual double GetRMin () const
 distance epipole - close intersection with image border More...
 
double GetROffset () const
 
HomgPoint2DGetTransformedEnd ()
 
HomgPoint2D GetTransformedEnd () const
 
HomgPoint2DGetTransformedStart ()
 
HomgPoint2D GetTransformedStart () const
 
HOMGLINE2D_TYPE GetW ()
 returns length of hypothenuse in gradient triangle More...
 
void Homogenize ()
 aequivalent to homogenize for points the gradient triangle is normed to hypothenuse length of 1 More...
 
virtual void Init (const double &minx, const double &miny, const double &maxx, const double &maxy, HomgPoint2D &epipole, HomgPoint2D &otherpoint, enum HomgPoint2D::EPosition epos)
 
virtual void Init (unsigned int width, unsigned int height, HomgPoint2D &epipole, HomgPoint2D &otherpoint, enum HomgPoint2D::EPosition epos)
 
virtual void Init (unsigned int width, unsigned int height, HomgPoint2D &epipole, HomgPoint2D &otherpoint)
 initialize epipolar line with the two endpoints More...
 
void Intersection (const HomgLine2D &line, HomgPoint2D &intersect) const
 calculates homogenized intersection of two lines More...
 
HomgPoint2D Intersection (const HomgLine2D &line) const
 calls the above More...
 
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...
 
virtual EpipolarLineoperator= (const EpipolarLine &line)
 
void PrintDebugLevel (std::ostream &os=std::cout) const
 
int Recalc (unsigned int width, unsigned int height, HomgPoint2D &epipole, enum HomgPoint2D::EPosition epos)
 assumes that data_ is already set More...
 
int Recalc (const double &minx, const double &miny, const double &maxx, const double &maxy, HomgPoint2D &epipole, enum HomgPoint2D::EPosition epos)
 assumes that data_ is already set More...
 
int Recalc ()
 assumes Width, Height_, data_ and Epipole_ are set correct before More...
 
void RemoveDebugLevel (const long int lv)
 
void RemoveDebugLevel (const std::string &name)
 
virtual double ScanLine (Image< unsigned char > &source, HomgPoint2D &epipole, enum HomgPoint2D::EPosition epos, double RMin, double RMax, bool forward, unsigned int &length, unsigned char *Destination)
 scans epipolar line using bresenham, midpint alg. More...
 
void Set (const HomgPoint2D &p1, const HomgPoint2D &p2)
 constructing a line through two points More...
 
void SetDebugLevel (const long int lv)
 
void SetDebugLevel (const std::string &name)
 
void SetDebugStream (const std::ostream &os)
 
void SetEpipole (HomgPoint2D &ep)
 
void ShowDebugLevel (std::ostream &os=std::cout) const
 prints all internally known debuglevels More...
 
virtual ~EpipolarLine ()
 
Set Functions
void Set (const HOMGLINE2D_TYPE *pv)
 copy the array of vectorsize beginning at *T to this->data_ More...
 
void Set (const HOMGLINE2D_TYPE &scalar)
 set all elements to a scalar value More...
 
void Set (const HOMGLINE2D_TYPE &x, const HOMGLINE2D_TYPE &y, const HOMGLINE2D_TYPE &z)
 set elementwise with given scalar values More...
 
void Set (const Vector< HOMGLINE2D_TYPE > &vec)
 Sets this form elements of Vector<T>. More...
 
void SetZero ()
 set all values to 0 More...
 
void clear ()
 stl conform interface More...
 
Iterator Functions
HOMGLINE2D_TYPEconst * begin () const
 Iterator to first component of vector. More...
 
HOMGLINE2D_TYPE * begin ()
 
HOMGLINE2D_TYPEconst * end () const
 Iterator pointing to one element after the last vector element. More...
 
HOMGLINE2D_TYPE * end ()
 
Get Functions
const unsigned int Size () const
 
const unsigned int size () const
 
const unsigned int GetNumElements () const
 
bool IsZero () const
 
double Length () const
 returns the Euclidean Length of the Vector More...
 
const HOMGLINE2D_TYPE * GetData () const
 get the data pointer the member function itself is const (before {..}) because it doesn't change the this object. More...
 
HOMGLINE2D_TYPE * GetData ()
 
HOMGLINE2D_TYPE NormL1 () const
 Return the L1 norm: |a| + |b| + |c|. More...
 
double NormL2 () const
 the L2 norm sqrt(a^2 + b^2 + c^2) More...
 
double Dist (const Vector3< HOMGLINE2D_TYPE > &vec) const
 Return the euclidean distance of 2 vectors. More...
 
double DistLinf (const Vector3< HOMGLINE2D_TYPE > &vec) const
 Return the L inf distance of 2 vectors. More...
 
Normalization
Vector3< HOMGLINE2D_TYPE > & Normalize ()
 normalize this vector to length 1 More...
 
Vector3< HOMGLINE2D_TYPE > & Normalize (Matrix3x3< HOMGLINE2D_TYPE > &cov)
 normalizes the vector to 1 and transfroms the associated covariance matrix More...
 
BIAS::Vector3< HOMGLINE2D_TYPE > GetNormalized () const
 return a normalized vector of this More...
 
Arithmetic
void CrossProduct (const Vector3< HOMGLINE2D_TYPE > &argvec, Vector3< HOMGLINE2D_TYPE > &destvec) const
 cross product of two vectors destvec = this x argvec More...
 
Vector3< HOMGLINE2D_TYPE > CrossProduct (const Vector3< HOMGLINE2D_TYPE > &argvec) const
 
void ScalarProduct (const Vector3< HOMGLINE2D_TYPE > &argvec, HOMGLINE2D_TYPE &result) const
 scalar product (=inner product) of two vectors, storing the result in result More...
 
HOMGLINE2D_TYPE ScalarProduct (const Vector3< HOMGLINE2D_TYPE > &argvec) const
 scalar product (=inner product) of two vectors returns a scalar More...
 
void ElementwiseProduct (const Vector3< HOMGLINE2D_TYPE > &argvec, Vector3< HOMGLINE2D_TYPE > &destvec) const
 multiply two vectors elementwise and store the result vector to destvec More...
 
Vector3< HOMGLINE2D_TYPE > ElementwiseProduct (const Vector3< HOMGLINE2D_TYPE > &argvec) const
 multiply two vectors elementwise and return the result vector More...
 
void ElementwiseDivision (const Vector3< HOMGLINE2D_TYPE > &argvec, Vector3< HOMGLINE2D_TYPE > &destvec) const
 
Vector3< HOMGLINE2D_TYPE > ElementwiseDivision (const Vector3< HOMGLINE2D_TYPE > &argvec) const
 divide elementwise More...
 
void AddIP (const HOMGLINE2D_TYPE &scalar)
 Addition (in place) of an scalar. More...
 
void AddIP (const Vector3< HOMGLINE2D_TYPE > &argvec)
 in place adding More...
 
void Add (const HOMGLINE2D_TYPE &scalar, Vector3< HOMGLINE2D_TYPE > &dest) const
 Addition with a scalar, storing results in destionation vector. More...
 
void Add (const Vector3< HOMGLINE2D_TYPE > &argvec, Vector3< HOMGLINE2D_TYPE > &destvec) const
 adding of two vectors, storing the result in destvec More...
 
void SubIP (const HOMGLINE2D_TYPE &scalar)
 Substraction (in place) of an scalar. More...
 
void SubIP (const Vector3< HOMGLINE2D_TYPE > &argvec)
 in place substraction More...
 
void Sub (const HOMGLINE2D_TYPE &scalar, Vector3< HOMGLINE2D_TYPE > &dest) const
 Substraction with a scalar, storing results in destination vector. More...
 
void Sub (const Vector3< HOMGLINE2D_TYPE > &argvec, Vector3< HOMGLINE2D_TYPE > &destvec) const
 subtracting of two Vectors, storing the result in destvec More...
 
void MultiplyIP (const HOMGLINE2D_TYPE &scalar)
 Multiplication (in place) of an scalar. More...
 
void MultIP (const HOMGLINE2D_TYPE &scalar)
 
void Multiply (const HOMGLINE2D_TYPE &scalar, Vector3< HOMGLINE2D_TYPE > &dest) const
 Multiplication with a scalar, storing results in destination vector. More...
 
void Mult (const HOMGLINE2D_TYPE &scalar, Vector3< HOMGLINE2D_TYPE > &dest) const
 
void DivideIP (const HOMGLINE2D_TYPE &scalar)
 Division (in place) of an scalar. More...
 
void DivIP (const HOMGLINE2D_TYPE &scalar)
 
void Divide (const HOMGLINE2D_TYPE &scalar, Vector3< HOMGLINE2D_TYPE > &dest) const
 Division with a scalar, storing results in destination vector. More...
 
void Div (const HOMGLINE2D_TYPE &scalar, Vector3< HOMGLINE2D_TYPE > &dest) const
 
Misc
void OuterProduct (const Vector3< HOMGLINE2D_TYPE > &v, Matrix3x3< HOMGLINE2D_TYPE > &res) const
 outer product, constructs a matrix. More...
 
Matrix3x3< HOMGLINE2D_TYPE > OuterProduct (const Vector3< HOMGLINE2D_TYPE > &v) const
 
Matrix< HOMGLINE2D_TYPE > GetSkewSymmetricMatrix () const
 constructs a skew symmetric 3x3 matrix from (*this), which can be used instead of the cross product More...
 
BIAS::Vector3< HOMGLINE2D_TYPE > CoordSphereToEuclidean () const
 coordinate transfrom. More...
 
BIAS::Vector3< HOMGLINE2D_TYPE > PolarToCartesian () const
 
BIAS::Vector3< HOMGLINE2D_TYPE > CoordSphereToEuclidian () const
 
BIAS::Vector3< HOMGLINE2D_TYPE > CoordEuclideanToSphere () const
 coordinate transform. More...
 
BIAS::Vector3< HOMGLINE2D_TYPE > CartesianToPolar () const
 
BIAS::Vector3< HOMGLINE2D_TYPE > CoordEuclidianToSphere () const
 
HOMGLINE2D_TYPE & Radius ()
 r for polar/sphere content JW More...
 
HOMGLINE2D_TYPE Radius () const
 
HOMGLINE2D_TYPE & Phi ()
 
HOMGLINE2D_TYPE Phi () const
 
HOMGLINE2D_TYPE & Theta ()
 
HOMGLINE2D_TYPE Theta () const
 
int LoadBogTC (const std::string &filename)
 reads the TC part of a BOG file which is used by Daimler Chrysler for storing Camera center position. More...
 
bool Load (const std::string &filename)
 method to load directly from a given filename. More...
 
bool Save (const std::string &filename) const
 method to save directly to a given filename. More...
 
Operators
const HOMGLINE2D_TYPE & operator[] (const int i) const
 access an element of the vector with 0-based indizes. More...
 
HOMGLINE2D_TYPE & operator[] (const int i)
 access an element of the vector with 0-based indizes. More...
 
bool operator== (const Vector3< HOMGLINE2D_TYPE > &arg) const
 Comparison operator 'equal'. More...
 
bool operator!= (const Vector3< HOMGLINE2D_TYPE > &arg) const
 Comparison operator 'not equal'. More...
 

Static Public Member Functions

template<class PixelType >
static void DrawDistortedLine (const Vector3< double > &epipoleRayOrigImage, const Vector3< double > &infRayOrigImage, Image< PixelType > &image, ProjectionParametersBase *paramsOrig, PixelType *Color=NULL, int lineWidth=1)
 project the plane given by two local rays and the camera center into the image (ANY projection) using cubemapping More...
 
static long int GetGlobalDebugLevel ()
 
template<class PixelType >
static void ProjectEpipolarPlane (const Projection &thisP, Image< PixelType > &thisIm, const Vector3< double > &otherCamCenter, const Vector3< double > &RayDir, PixelType *Color=NULL, int lineWidth=1)
 visualize the epipolar plane/line as a curve in the image for any Projection More...
 
static void SetGlobalDebugLevel (long int lev)
 

Protected Member Functions

virtual void CalcTransformed_ ()
 
long ConsumeNextFreeDebuglevel_ ()
 returns the next available debuglevel More...
 
bool DetermineIntersectionsAndEpipoleDistances_ (HomgPoint2D &point)
 
virtual void Interpolate_ (enum TLineType &type, unsigned char **ida, int &x, int &y, double &g, unsigned char &result)
 
virtual double ScanLine_ (Image< unsigned char > &source, unsigned int ROffset, unsigned int &length, unsigned char *Destination, bool forward)
 

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
 
double Angle_
 
enum TEdge FarEdge_ CloseEdge_
 
HomgPoint2D CloseIntersection_
 
HomgPoint2D Current_
 
HOMGLINE2D_TYPE data_ [VECTOR3_SIZE]
 
double DeltaR_
 
double dx_
 
double dy_
 
HomgPoint2D End_
 
HomgPoint2D Epipole_
 
enum HomgPoint2D::EPosition EpipolePosition_
 
HomgPoint2D FarIntersection_
 
unsigned int Length_
 
double maxx_
 
double maxy_
 
double minx_
 int Width_; // width of image int Height_; // height of image image borders in xdir, typically 0, width-1 More...
 
double miny_
 image borders in xdir, typically 0, height-1 More...
 
HomgPoint2D PInfinity_
 
enum HomgPoint2D::EPosition PInfinityPosition_
 
double RMaxLine_
 
double RMinLine_
 
unsigned int ROffset_
 
bool SearchOverInf_
 
HomgPoint2D Start_
 
EightWaySymmetryHomg Sym_
 
HomgPoint2D TransformedCurrent_
 
HomgPoint2D TransformedEnd_
 
HomgPoint2D TransformedStart_
 
enum TLineType Type_
 

Static Protected Attributes

static std::ostream _zDebugStream
 
static long int GlobalDebugLevel = 0
 

Detailed Description

A class for representing epipolar lines with useful functions like ScanLine().

Coordinate system is image coo system with origin in upper left image corner. Epipole and point at infinty is also stored

Author
Felix Woelk
Examples:
ExampleEpipolarLine.cpp.

Definition at line 69 of file EpipolarLine.hh.

Member Typedef Documentation

typedef HOMGLINE2D_TYPE BIAS::Vector3< HOMGLINE2D_TYPE >::value_type
inherited

Definition at line 76 of file Vector3.hh.

Constructor & Destructor Documentation

EpipolarLine::EpipolarLine ( )
EpipolarLine::EpipolarLine ( const EpipolarLine line)
BIAS::EpipolarLine::EpipolarLine ( const Vector3< HOMGLINE2D_TYPE > &  vec)
EpipolarLine::~EpipolarLine ( )
virtual

Definition at line 118 of file EpipolarLine.cpp.

Member Function Documentation

void BIAS::Vector3< HOMGLINE2D_TYPE >::Add ( const HOMGLINE2D_TYPE &  scalar,
Vector3< HOMGLINE2D_TYPE > &  dest 
) const
inlineinherited

Addition with a scalar, storing results in destionation vector.

Author
Ingo Thomsen
void BIAS::Vector3< HOMGLINE2D_TYPE >::Add ( const Vector3< HOMGLINE2D_TYPE > &  argvec,
Vector3< HOMGLINE2D_TYPE > &  destvec 
) const
inlineinherited

adding of two vectors, storing the result in destvec

Author
Ingo Thomsen tested
void BIAS::Debug::AddDebugLevel ( const long int  lv)
inlineinherited
void BIAS::Debug::AddDebugLevel ( const std::string &  name)
inlineinherited

Definition at line 362 of file Debug.hh.

void BIAS::Vector3< HOMGLINE2D_TYPE >::AddIP ( const HOMGLINE2D_TYPE &  scalar)
inlineinherited

Addition (in place) of an scalar.

Author
Ingo Thomsen

Definition at line 310 of file Vector3.hh.

void BIAS::Vector3< HOMGLINE2D_TYPE >::AddIP ( const Vector3< HOMGLINE2D_TYPE > &  argvec)
inlineinherited

in place adding

Author
Ingo Thomsen tested

Definition at line 349 of file Vector3.hh.

HOMGLINE2D_TYPE const* BIAS::Vector3< HOMGLINE2D_TYPE >::begin ( ) const
inlineinherited

Iterator to first component of vector.

Author
Stefan Reinhold

Definition at line 134 of file Vector3.hh.

HOMGLINE2D_TYPE * BIAS::Vector3< HOMGLINE2D_TYPE >::begin ( )
inlineinherited

Definition at line 137 of file Vector3.hh.

void EpipolarLine::CalcTransformed_ ( )
protectedvirtual
BIAS::Vector3<HOMGLINE2D_TYPE > BIAS::Vector3< HOMGLINE2D_TYPE >::CartesianToPolar ( ) const
inlineinherited

Definition at line 422 of file Vector3.hh.

void BIAS::Vector3< HOMGLINE2D_TYPE >::clear ( )
inlineinherited

stl conform interface

long BIAS::Debug::ConsumeNextFreeDebuglevel_ ( )
inlineprotectedinherited

returns the next available debuglevel

Author
woelk 09/2006

Definition at line 521 of file Debug.hh.

BIAS::Vector3<HOMGLINE2D_TYPE > BIAS::Vector3< HOMGLINE2D_TYPE >::CoordEuclideanToSphere ( ) const
inherited

coordinate transform.

compute the sphere coordinates(r, phi, theta) for (this) given euclidean point p=(x,y,z) with radius : distance to center, theta : radian angle between positive z-axis and p=(x,y,z). (0-pi) phi : radian angle between positive x-axis and projection of p=(x,y,z) into XY plane. (0-2pi) assume (x,y,z) is in orthogonal right-hand-system.

Author
Jan Woetzel 09/2003
BIAS::Vector3<HOMGLINE2D_TYPE > BIAS::Vector3< HOMGLINE2D_TYPE >::CoordEuclidianToSphere ( ) const
inlineinherited

Definition at line 426 of file Vector3.hh.

BIAS::Vector3<HOMGLINE2D_TYPE > BIAS::Vector3< HOMGLINE2D_TYPE >::CoordSphereToEuclidean ( ) const
inherited

coordinate transfrom.

compute the euclidean coord p=(x,y,z) for (this) given sphere coord sph=(radius, phi, theta) with radius : distance to center, theta : radian angle between positive z-axis and p=(x,y,z). (0-pi) phi : radian angle between positive x-axis and projection of p=(x,y,z) into XY plane. (0-2pi) assume (x,y,z) is in orthogonal right-hand-system.

Author
Jan Woetzel 09/2003
BIAS::Vector3<HOMGLINE2D_TYPE > BIAS::Vector3< HOMGLINE2D_TYPE >::CoordSphereToEuclidian ( ) const
inlineinherited

Definition at line 407 of file Vector3.hh.

void BIAS::Vector3< HOMGLINE2D_TYPE >::CrossProduct ( const Vector3< HOMGLINE2D_TYPE > &  argvec,
Vector3< HOMGLINE2D_TYPE > &  destvec 
) const
inlineinherited

cross product of two vectors destvec = this x argvec

Author
Ingo Thomsen, Jan Woetzel alpha

Referenced by BIAS::HomgLine2D::Intersection().

Vector3<HOMGLINE2D_TYPE > BIAS::Vector3< HOMGLINE2D_TYPE >::CrossProduct ( const Vector3< HOMGLINE2D_TYPE > &  argvec) const
inlineinherited
Returns
cross product = this x argvec
Author
Jan Woetzel alpha

Definition at line 267 of file Vector3.hh.

bool BIAS::Debug::DebugLevelIsSet ( const long int  lv) const
inlineinherited
bool BIAS::Debug::DebugLevelIsSet ( const std::string &  name) const
inlineinherited

Definition at line 350 of file Debug.hh.

bool EpipolarLine::DetermineIntersectionsAndEpipoleDistances_ ( HomgPoint2D point)
protected
double BIAS::Vector3< HOMGLINE2D_TYPE >::Dist ( const Vector3< HOMGLINE2D_TYPE > &  vec) const
inlineinherited

Return the euclidean distance of 2 vectors.

Author
Birger Streckel
Date
08/2002
HOMGLINE2D_TYPE BIAS::HomgLine2D::Distance ( const HomgPoint2D point)
inlineinherited

calculates distance of a point from line

Definition at line 78 of file HomgLine2D.hh.

HOMGLINE2D_TYPE BIAS::HomgLine2D::DistanceSquared ( const HomgPoint2D point)
inlineinherited

calculates squared distance of a point from line

Definition at line 160 of file HomgLine2D.hh.

References BIAS::Vector3< HOMGLINE2D_TYPE >::data_.

double BIAS::Vector3< HOMGLINE2D_TYPE >::DistLinf ( const Vector3< HOMGLINE2D_TYPE > &  vec) const
inlineinherited

Return the L inf distance of 2 vectors.

Author
djung
Date
2009/07 untested
void BIAS::Vector3< HOMGLINE2D_TYPE >::Div ( const HOMGLINE2D_TYPE &  scalar,
Vector3< HOMGLINE2D_TYPE > &  dest 
) const
inlineinherited

Definition at line 343 of file Vector3.hh.

void BIAS::Vector3< HOMGLINE2D_TYPE >::Divide ( const HOMGLINE2D_TYPE &  scalar,
Vector3< HOMGLINE2D_TYPE > &  dest 
) const
inlineinherited

Division with a scalar, storing results in destination vector.

Author
Ingo Thomsen
void BIAS::Vector3< HOMGLINE2D_TYPE >::DivideIP ( const HOMGLINE2D_TYPE &  scalar)
inlineinherited

Division (in place) of an scalar.

Author
Ingo Thomsen
void BIAS::Vector3< HOMGLINE2D_TYPE >::DivIP ( const HOMGLINE2D_TYPE &  scalar)
inlineinherited

Definition at line 338 of file Vector3.hh.

template<class PixelType >
void EpipolarLine::Draw ( Image< PixelType > &  im)
template<class PixelType >
void EpipolarLine::DrawDistortedLine ( const Vector3< double > &  epipoleRayOrigImage,
const Vector3< double > &  infRayOrigImage,
Image< PixelType > &  image,
ProjectionParametersBase paramsOrig,
PixelType *  Color = NULL,
int  lineWidth = 1 
)
static

project the plane given by two local rays and the camera center into the image (ANY projection) using cubemapping

Author
koeser 12/2006

Constructs a cubemap with 90 degrees fov for each cube face and computes the projection of the plane onto the cubefaces (bresenham on the lines). Forward mapping is used to determine the pixels in the original image which are marked as being on the line

Definition at line 712 of file EpipolarLine.cpp.

References BIAS::Vector3< T >::CrossProduct(), BIAS::HomgPoint2D::DeterminePosition(), BIAS::ProjectionParametersBase::DoesPointProjectIntoImage(), BIAS::Vector3< HOMGLINE2D_TYPE >::end(), BIAS::ProjectionParametersBase::GetC(), BIAS::ImageBase::GetChannelCount(), BIAS::ProjectionParametersSpherical::GetFakeKMatrix(), BIAS::ProjectionParametersBase::GetImageSize(), BIAS::ProjectionParametersPerspective::GetK(), BIAS::Bresenham::GetNext(), BIAS::ProjectionParametersBase::GetR(), BIAS::HomgPoint2D::Homogenize(), BIAS::ProjectionParametersPerspective::IsDistorted(), BIAS::ImageBase::IsPositionInImage(), BIAS::ImageDraw< StorageType >::Line(), BIAS::MatrixIdentity, BIAS::Vector3< T >::NormL2(), BIAS::ProjectionParametersPerspective::ProjectLocal(), BIAS::Vector3< T >::ScalarProduct(), BIAS::ProjectionParametersBase::SetC(), BIAS::ProjectionParametersBase::SetImageSize(), BIAS::ProjectionParametersPerspective::SetK(), BIAS::ProjectionParametersPerspective::SetMinZLocal(), BIAS::Image< StorageType >::SetPixel(), BIAS::ProjectionParametersBase::SetR(), BIAS::Matrix3x3< T >::Transpose(), and BIAS::ProjectionParametersBase::UnProjectToRay().

Referenced by ProjectEpipolarPlane().

template<class PixelType >
void EpipolarLine::DrawWhole ( Image< PixelType > &  im)
void BIAS::Vector3< HOMGLINE2D_TYPE >::ElementwiseDivision ( const Vector3< HOMGLINE2D_TYPE > &  argvec,
Vector3< HOMGLINE2D_TYPE > &  destvec 
) const
inlineinherited
Vector3<HOMGLINE2D_TYPE > BIAS::Vector3< HOMGLINE2D_TYPE >::ElementwiseDivision ( const Vector3< HOMGLINE2D_TYPE > &  argvec) const
inlineinherited

divide elementwise

Author
Jan Woetzel

Definition at line 300 of file Vector3.hh.

void BIAS::Vector3< HOMGLINE2D_TYPE >::ElementwiseProduct ( const Vector3< HOMGLINE2D_TYPE > &  argvec,
Vector3< HOMGLINE2D_TYPE > &  destvec 
) const
inlineinherited

multiply two vectors elementwise and store the result vector to destvec

Author
Jan Woetzel alpha (03/06/2002)
Vector3<HOMGLINE2D_TYPE > BIAS::Vector3< HOMGLINE2D_TYPE >::ElementwiseProduct ( const Vector3< HOMGLINE2D_TYPE > &  argvec) const
inlineinherited

multiply two vectors elementwise and return the result vector

Author
Jan Woetzel (03/06/2002)

Definition at line 288 of file Vector3.hh.

HOMGLINE2D_TYPE const* BIAS::Vector3< HOMGLINE2D_TYPE >::end ( ) const
inlineinherited

Iterator pointing to one element after the last vector element.

Author
Stefan Reinhold

Definition at line 143 of file Vector3.hh.

Referenced by Draw(), DrawDistortedLine(), and DrawWhole().

HOMGLINE2D_TYPE * BIAS::Vector3< HOMGLINE2D_TYPE >::end ( )
inlineinherited

Definition at line 146 of file Vector3.hh.

double BIAS::EpipolarLine::GetAngle ( ) const
inline

angle to abszissa (-pi, pi]

Definition at line 100 of file EpipolarLine.hh.

Referenced by EpipolarLine(), GetNextLine(), and operator=().

virtual enum TEdge BIAS::EpipolarLine::GetCloseEdge ( ) const
inlinevirtual

Definition at line 156 of file EpipolarLine.hh.

Referenced by EpipolarLine(), and operator=().

virtual HomgPoint2D& BIAS::EpipolarLine::GetCloseIntersectionWithImageBorder ( )
inlinevirtual
Examples:
ExampleEpipolarLine.cpp.

Definition at line 142 of file EpipolarLine.hh.

Referenced by DetermineIntersectionsAndEpipoleDistances_(), and Draw().

virtual HomgPoint2D BIAS::EpipolarLine::GetCopyOfCloseIntersectionWithImageBorder ( ) const
inlinevirtual

Definition at line 150 of file EpipolarLine.hh.

Referenced by EpipolarLine(), and operator=().

virtual HomgPoint2D BIAS::EpipolarLine::GetCopyOfEpipole ( ) const
inlinevirtual

Definition at line 90 of file EpipolarLine.hh.

Referenced by EpipolarLine(), and operator=().

virtual HomgPoint2D BIAS::EpipolarLine::GetCopyOfFarIntersectionWithImageBorder ( ) const
inlinevirtual

Definition at line 146 of file EpipolarLine.hh.

Referenced by EpipolarLine(), and operator=().

const HOMGLINE2D_TYPE * BIAS::Vector3< HOMGLINE2D_TYPE >::GetData ( ) const
inlineinherited

get the data pointer the member function itself is const (before {..}) because it doesn't change the this object.

Returns
the const pointer to the data array for reading
Author
Jan Woetzel untested (02/28/2002)

Definition at line 202 of file Vector3.hh.

HOMGLINE2D_TYPE * BIAS::Vector3< HOMGLINE2D_TYPE >::GetData ( )
inlineinherited

Definition at line 203 of file Vector3.hh.

int BIAS::Debug::GetDebugLevel ( ) const
inlineinherited
std::ostream& BIAS::Debug::GetDebugStream ( ) const
inlineinherited

Definition at line 405 of file Debug.hh.

void BIAS::Debug::GetDebugStream ( std::ostream &  os) const
inlineinherited

Definition at line 414 of file Debug.hh.

virtual double BIAS::EpipolarLine::GetDeltaR ( ) const
inlinevirtual

Definition at line 126 of file EpipolarLine.hh.

double BIAS::EpipolarLine::GetDx ( ) const
inline

Definition at line 107 of file EpipolarLine.hh.

Referenced by EpipolarLine(), and operator=().

double BIAS::EpipolarLine::GetDy ( ) const
inline

Definition at line 110 of file EpipolarLine.hh.

Referenced by EpipolarLine(), and operator=().

virtual HomgPoint2D& BIAS::EpipolarLine::GetEpipole ( )
inlinevirtual

Definition at line 87 of file EpipolarLine.hh.

Referenced by GetNextLine().

virtual enum HomgPoint2D::EPosition BIAS::EpipolarLine::GetEpipolePosition ( ) const
inlinevirtual

Definition at line 174 of file EpipolarLine.hh.

Referenced by EpipolarLine(), GetNextLine(), and operator=().

virtual enum TEdge BIAS::EpipolarLine::GetFarEdge ( ) const
inlinevirtual

Definition at line 153 of file EpipolarLine.hh.

Referenced by EpipolarLine(), and operator=().

virtual HomgPoint2D& BIAS::EpipolarLine::GetFarIntersectionWithImageBorder ( )
inlinevirtual
static long int BIAS::Debug::GetGlobalDebugLevel ( )
inlinestaticinherited

Definition at line 431 of file Debug.hh.

void BIAS::EpipolarLine::GetImageBoundaries ( double &  minx,
double &  miny,
double &  maxx,
double &  maxy 
) const
inline

Definition at line 165 of file EpipolarLine.hh.

Referenced by EpipolarLine(), and operator=().

virtual unsigned int BIAS::EpipolarLine::GetImageHeight ( ) const
inlinevirtual

Definition at line 162 of file EpipolarLine.hh.

virtual unsigned int BIAS::EpipolarLine::GetImageWidth ( ) const
inlinevirtual

Definition at line 159 of file EpipolarLine.hh.

bool HomgLine2D::GetIntersectionsWithImage ( unsigned int  width,
unsigned int  height,
unsigned int  coo[4] 
)
inherited

! assumes line is given in pixel coo ! returns true if line intersects with image of given size returns intersections with image ( x1 = coo[0], y1 = coo[1], x2 = coo[2], y2 = coo[3] ) for usage with DrawLine

Definition at line 28 of file HomgLine2D.cpp.

References BIAS::HomgPoint2D::Homogenize().

Referenced by BIAS::GenGroundTruth::DrawMatches().

enum TLineType BIAS::EpipolarLine::GetLineType ( ) const
inline

return type, E_NE if 0 < slope < 45 degree NE_N if 45 < slop < 90 ...

Definition at line 96 of file EpipolarLine.hh.

Referenced by EpipolarLine(), and operator=().

void EpipolarLine::GetNextLine ( bool  clockwise,
EpipolarLine next,
double  dist = 1.0 
)
virtual

returns next line with maximal possible distance without pixel loss

Definition at line 122 of file EpipolarLine.cpp.

References BIAS::Vector3< HOMGLINE2D_TYPE >::data_, GetAngle(), GetEpipole(), GetEpipolePosition(), GetFarIntersectionWithImageBorder(), BIAS::HomgLine2D::Homogenize(), Init(), maxx_, maxy_, minx_, and miny_.

BIAS::Vector3<HOMGLINE2D_TYPE > BIAS::Vector3< HOMGLINE2D_TYPE >::GetNormalized ( ) const
inherited

return a normalized vector of this

norm. to length 1

Author
Jan Woetzel
Date
06/2003
const unsigned int BIAS::Vector3< HOMGLINE2D_TYPE >::GetNumElements ( ) const
inlineinherited

Definition at line 187 of file Vector3.hh.

void BIAS::HomgLine2D::GetPerpendicularLine ( HomgPoint2D point,
HomgLine2D perpline 
)
inlineinherited

return perpendicular line throug point

Definition at line 187 of file HomgLine2D.hh.

References BIAS::Vector3< HOMGLINE2D_TYPE >::data_, and BIAS::HomgPoint2D::Homogenize().

Referenced by BIAS::TrifocalTensor::TransferView3().

virtual double BIAS::EpipolarLine::GetRMax ( ) const
inlinevirtual

distance epipole - far intersection with image border

Definition at line 134 of file EpipolarLine.hh.

Referenced by EpipolarLine(), and operator=().

virtual double BIAS::EpipolarLine::GetRMin ( ) const
inlinevirtual

distance epipole - close intersection with image border

Definition at line 130 of file EpipolarLine.hh.

Referenced by EpipolarLine(), and operator=().

double BIAS::EpipolarLine::GetROffset ( ) const
inline

Definition at line 104 of file EpipolarLine.hh.

Matrix<HOMGLINE2D_TYPE > BIAS::Vector3< HOMGLINE2D_TYPE >::GetSkewSymmetricMatrix ( ) const
inherited

constructs a skew symmetric 3x3 matrix from (*this), which can be used instead of the cross product

Author
koeser 09/2003
HomgPoint2D& BIAS::EpipolarLine::GetTransformedEnd ( )
inline

Definition at line 116 of file EpipolarLine.hh.

HomgPoint2D BIAS::EpipolarLine::GetTransformedEnd ( ) const
inline

Definition at line 122 of file EpipolarLine.hh.

HomgPoint2D& BIAS::EpipolarLine::GetTransformedStart ( )
inline

Definition at line 113 of file EpipolarLine.hh.

HomgPoint2D BIAS::EpipolarLine::GetTransformedStart ( ) const
inline

Definition at line 119 of file EpipolarLine.hh.

HOMGLINE2D_TYPE BIAS::HomgLine2D::GetW ( )
inlineinherited

returns length of hypothenuse in gradient triangle

Definition at line 144 of file HomgLine2D.hh.

References BIAS::Vector3< HOMGLINE2D_TYPE >::data_.

Referenced by BIAS::HomgLine2D::Homogenize().

void BIAS::HomgLine2D::Homogenize ( )
inlineinherited

aequivalent to homogenize for points the gradient triangle is normed to hypothenuse length of 1

Examples:
InvestigateEpipoleEstimation.cpp.

Definition at line 149 of file HomgLine2D.hh.

References BIAS::Vector3< HOMGLINE2D_TYPE >::data_, and BIAS::HomgLine2D::GetW().

Referenced by BIAS::FMatrixBase::GetCosAngleErrorHomogenized(), GetNextLine(), Init(), Recalc(), ScanLine(), and BIAS::HomgLine2D::Set().

void EpipolarLine::Init ( const double &  minx,
const double &  miny,
const double &  maxx,
const double &  maxy,
HomgPoint2D epipole,
HomgPoint2D otherpoint,
enum HomgPoint2D::EPosition  epos 
)
virtual
void EpipolarLine::Init ( unsigned int  width,
unsigned int  height,
HomgPoint2D epipole,
HomgPoint2D otherpoint,
enum HomgPoint2D::EPosition  epos 
)
virtual

Definition at line 211 of file EpipolarLine.cpp.

References Init().

void EpipolarLine::Init ( unsigned int  width,
unsigned int  height,
HomgPoint2D epipole,
HomgPoint2D otherpoint 
)
virtual

initialize epipolar line with the two endpoints

Definition at line 254 of file EpipolarLine.cpp.

References BIAS::HomgPoint2D::DeterminePosition(), and Init().

void EpipolarLine::Interpolate_ ( enum TLineType type,
unsigned char **  ida,
int &  x,
int &  y,
double &  g,
unsigned char &  result 
)
protectedvirtual
void BIAS::HomgLine2D::Intersection ( const HomgLine2D line,
HomgPoint2D intersect 
) const
inlineinherited

calculates homogenized intersection of two lines

Definition at line 180 of file HomgLine2D.hh.

References BIAS::Vector3< HOMGLINE2D_TYPE >::CrossProduct().

Referenced by DetermineIntersectionsAndEpipoleDistances_(), and BIAS::HomgLine2D::Intersection().

HomgPoint2D BIAS::HomgLine2D::Intersection ( const HomgLine2D line) const
inlineinherited

calls the above

Definition at line 172 of file HomgLine2D.hh.

References BIAS::HomgLine2D::Intersection().

bool BIAS::Vector3< HOMGLINE2D_TYPE >::IsZero ( ) const
inlineinherited
Returns
true iff all elements are equal zero JW
double BIAS::Vector3< HOMGLINE2D_TYPE >::Length ( ) const
inlineinherited

returns the Euclidean Length of the Vector

Author
Jan Woetzel

Definition at line 193 of file Vector3.hh.

bool BIAS::Vector3< HOMGLINE2D_TYPE >::Load ( const std::string &  filename)
inherited

method to load directly from a given filename.

internally using stream operator

Author
Jan Woetzel 09/2005
Returns
false in case of error, true in case of success
int BIAS::Vector3< HOMGLINE2D_TYPE >::LoadBogTC ( const std::string &  filename)
inherited

reads the TC part of a BOG file which is used by Daimler Chrysler for storing Camera center position.

Returns
0 for success, negative for errror
Author
Jan Woetzel 03/2005
void BIAS::Vector3< HOMGLINE2D_TYPE >::Mult ( const HOMGLINE2D_TYPE &  scalar,
Vector3< HOMGLINE2D_TYPE > &  dest 
) const
inlineinherited

Definition at line 332 of file Vector3.hh.

void BIAS::Vector3< HOMGLINE2D_TYPE >::MultIP ( const HOMGLINE2D_TYPE &  scalar)
inlineinherited

Definition at line 327 of file Vector3.hh.

void BIAS::Vector3< HOMGLINE2D_TYPE >::Multiply ( const HOMGLINE2D_TYPE &  scalar,
Vector3< HOMGLINE2D_TYPE > &  dest 
) const
inlineinherited

Multiplication with a scalar, storing results in destination vector.

Author
Ingo Thomsen
void BIAS::Vector3< HOMGLINE2D_TYPE >::MultiplyIP ( const HOMGLINE2D_TYPE &  scalar)
inlineinherited

Multiplication (in place) of an scalar.

Author
Ingo Thomsen

Definition at line 326 of file Vector3.hh.

long int BIAS::Debug::Name2DebugLevel ( const std::string &  name) const
inlineinherited

looks up a debuglevel in the internal map, returns 0 if not found

Author
woelk 09/2006

Definition at line 454 of file Debug.hh.

long int BIAS::Debug::NewDebugLevel ( const std::string &  name)
inlineinherited
Vector3<HOMGLINE2D_TYPE >& BIAS::Vector3< HOMGLINE2D_TYPE >::Normalize ( )
inlineinherited

normalize this vector to length 1

Author
Jan Woetzel / koeser
Returns
reference to updated (*this)
Date
04/25/2002
Vector3<HOMGLINE2D_TYPE >& BIAS::Vector3< HOMGLINE2D_TYPE >::Normalize ( Matrix3x3< HOMGLINE2D_TYPE > &  cov)
inherited

normalizes the vector to 1 and transfroms the associated covariance matrix

Author
woelk 03/2006
HOMGLINE2D_TYPE BIAS::Vector3< HOMGLINE2D_TYPE >::NormL1 ( ) const
inlineinherited

Return the L1 norm: |a| + |b| + |c|.

Author
Ingo Thomsen
Date
04/11/2002 tested
double BIAS::Vector3< HOMGLINE2D_TYPE >::NormL2 ( ) const
inlineinherited

the L2 norm sqrt(a^2 + b^2 + c^2)

Author
woelk 01 2003

Referenced by ProjectEpipolarPlane().

bool BIAS::Vector3< HOMGLINE2D_TYPE >::operator!= ( const Vector3< HOMGLINE2D_TYPE > &  arg) const
inlineinherited

Comparison operator 'not equal'.

Author
woelk 01 2003

Definition at line 505 of file Vector3.hh.

EpipolarLine & EpipolarLine::operator= ( const EpipolarLine line)
virtual
bool BIAS::Vector3< HOMGLINE2D_TYPE >::operator== ( const Vector3< HOMGLINE2D_TYPE > &  arg) const
inlineinherited

Comparison operator 'equal'.

Author
Ingo Thomsen tested

Definition at line 500 of file Vector3.hh.

const HOMGLINE2D_TYPE & BIAS::Vector3< HOMGLINE2D_TYPE >::operator[] ( const int  i) const
inlineinherited

access an element of the vector with 0-based indizes.

read only (no write) member function const because it doesn't change this object

Author
Jan Woetzel untested (03/01/2002)
HOMGLINE2D_TYPE & BIAS::Vector3< HOMGLINE2D_TYPE >::operator[] ( const int  i)
inlineinherited

access an element of the vector with 0-based indizes.

write allowed

Author
Jan Woetzel untested (03/01/2002)
void BIAS::Vector3< HOMGLINE2D_TYPE >::OuterProduct ( const Vector3< HOMGLINE2D_TYPE > &  v,
Matrix3x3< HOMGLINE2D_TYPE > &  res 
) const
inherited

outer product, constructs a matrix.

Often written as (*this) * v^T for col vectors made it fast

Author
Daniel Grest, Sept 2003, woelk 07/2004 tested
Matrix3x3<HOMGLINE2D_TYPE > BIAS::Vector3< HOMGLINE2D_TYPE >::OuterProduct ( const Vector3< HOMGLINE2D_TYPE > &  v) const
inlineinherited

Definition at line 379 of file Vector3.hh.

HOMGLINE2D_TYPE & BIAS::Vector3< HOMGLINE2D_TYPE >::Phi ( )
inlineinherited

Definition at line 436 of file Vector3.hh.

HOMGLINE2D_TYPE BIAS::Vector3< HOMGLINE2D_TYPE >::Phi ( ) const
inlineinherited

Definition at line 438 of file Vector3.hh.

BIAS::Vector3<HOMGLINE2D_TYPE > BIAS::Vector3< HOMGLINE2D_TYPE >::PolarToCartesian ( ) const
inlineinherited

Definition at line 403 of file Vector3.hh.

void BIAS::Debug::PrintDebugLevel ( std::ostream &  os = std::cout) const
inlineinherited

Definition at line 383 of file Debug.hh.

template<class PixelType >
void EpipolarLine::ProjectEpipolarPlane ( const Projection thisP,
Image< PixelType > &  thisIm,
const Vector3< double > &  otherCamCenter,
const Vector3< double > &  RayDir,
PixelType *  Color = NULL,
int  lineWidth = 1 
)
static

visualize the epipolar plane/line as a curve in the image for any Projection

Author
koeser 12/2006

The epipolar plane is defined by the centers of two cameras (baseline) and some viewing ray in one of the cameras. This function determines the plane and uses cube-mapping to project it into some image with given arbitrary projection. Forward mapping is used, therefore the line may not be absolutely exact. Calls DrawDistortedLine() after determining paramerters

Definition at line 907 of file EpipolarLine.cpp.

References BIAS::ImageDraw< StorageType >::CircleCenter(), BIAS::Vector3< T >::CrossProduct(), BIAS::Projection::DoesPointProjectIntoImage(), DrawDistortedLine(), BIAS::Projection::GetC(), BIAS::ProjectionParametersBase::GetExternals(), BIAS::Projection::GetParameters(), BIAS::HomgPoint3D, BIAS::HomgPoint2D::Homogenize(), BIAS::Vector3< T >::Normalize(), BIAS::Vector3< T >::NormL2(), BIAS::Vector3< HOMGLINE2D_TYPE >::NormL2(), and BIAS::ImageDraw< StorageType >::RectangleCenter().

HOMGLINE2D_TYPE & BIAS::Vector3< HOMGLINE2D_TYPE >::Radius ( )
inlineinherited

r for polar/sphere content JW

Definition at line 431 of file Vector3.hh.

HOMGLINE2D_TYPE BIAS::Vector3< HOMGLINE2D_TYPE >::Radius ( ) const
inlineinherited

Definition at line 433 of file Vector3.hh.

int EpipolarLine::Recalc ( unsigned int  width,
unsigned int  height,
HomgPoint2D epipole,
enum HomgPoint2D::EPosition  epos 
)

assumes that data_ is already set

Author
woelk
Returns
0 on success, -1 on error (line out of image)
Examples:
ExampleEpipolarLine.cpp.

Definition at line 169 of file EpipolarLine.cpp.

References Recalc().

int EpipolarLine::Recalc ( const double &  minx,
const double &  miny,
const double &  maxx,
const double &  maxy,
HomgPoint2D epipole,
enum HomgPoint2D::EPosition  epos 
)

assumes that data_ is already set

Author
koeser
Returns
0 on success, -1 on error (line out of image)

Definition at line 175 of file EpipolarLine.cpp.

References Epipole_, EpipolePosition_, maxx_, maxy_, minx_, miny_, and Recalc().

int EpipolarLine::Recalc ( )

assumes Width, Height_, data_ and Epipole_ are set correct before

Author
woelk
Returns
0 on success, -1 on error (line out of image)

Definition at line 192 of file EpipolarLine.cpp.

References Angle_, BIAS::Vector3< HOMGLINE2D_TYPE >::data_, DeltaR_, DetermineIntersectionsAndEpipoleDistances_(), BIAS::EightWaySymmetryHomg::DetermineLineType(), Epipole_, FarIntersection_, BIAS::HomgLine2D::Homogenize(), minx_, miny_, Sym_, and Type_.

Referenced by Recalc().

void BIAS::Debug::RemoveDebugLevel ( const long int  lv)
inlineinherited

Definition at line 369 of file Debug.hh.

void BIAS::Debug::RemoveDebugLevel ( const std::string &  name)
inlineinherited

Definition at line 376 of file Debug.hh.

bool BIAS::Vector3< HOMGLINE2D_TYPE >::Save ( const std::string &  filename) const
inherited

method to save directly to a given filename.

internally using stream operator

Author
Jan Woetzel 09/2009
Returns
false in case of error, true in case of success
void BIAS::Vector3< HOMGLINE2D_TYPE >::ScalarProduct ( const Vector3< HOMGLINE2D_TYPE > &  argvec,
HOMGLINE2D_TYPE &  result 
) const
inlineinherited

scalar product (=inner product) of two vectors, storing the result in result

Author
Jan Woetzel
HOMGLINE2D_TYPE BIAS::Vector3< HOMGLINE2D_TYPE >::ScalarProduct ( const Vector3< HOMGLINE2D_TYPE > &  argvec) const
inlineinherited

scalar product (=inner product) of two vectors returns a scalar

Author
Jan Woetzel, Ingo Thomsen alpha
double EpipolarLine::ScanLine ( Image< unsigned char > &  source,
HomgPoint2D epipole,
enum HomgPoint2D::EPosition  epos,
double  RMin,
double  RMax,
bool  forward,
unsigned int &  length,
unsigned char *  Destination 
)
virtual

scans epipolar line using bresenham, midpint alg.

and 8-way symmetry using minimal necessairy pixel step fills resulting linear interpolated pixels values in Destination allocates Destination if NULL to necessairy size sets length to length of Destination Destination is filled from ROffset on, only if Destination != NULL assumes that HomgLine2D::Vector3<double>::data_ is set

Returns
distance image-epipole on ep. line, negative value if error
Author
Felix Woelk

Definition at line 267 of file EpipolarLine.cpp.

References Angle_, CalcTransformed_(), BIAS::Vector3< HOMGLINE2D_TYPE >::data_, DeltaR_, DetermineIntersectionsAndEpipoleDistances_(), BIAS::EightWaySymmetryHomg::DetermineLineType(), Epipole_, EpipolePosition_, FarIntersection_, BIAS::ImageBase::GetHeight(), BIAS::ImageBase::GetWidth(), BIAS::HomgLine2D::Homogenize(), maxx_, maxy_, minx_, miny_, RMaxLine_, RMinLine_, ROffset_, ScanLine_(), Sym_, TransformedEnd_, TransformedStart_, and Type_.

double EpipolarLine::ScanLine_ ( Image< unsigned char > &  source,
unsigned int  ROffset,
unsigned int &  length,
unsigned char *  Destination,
bool  forward 
)
protectedvirtual
void BIAS::HomgLine2D::Set ( const HomgPoint2D p1,
const HomgPoint2D p2 
)
inlineinherited
void BIAS::Vector3< HOMGLINE2D_TYPE >::Set ( const HOMGLINE2D_TYPE *  pv)
inlineinherited

copy the array of vectorsize beginning at *T to this->data_

Author
Jan Woetzel, untested (02/28/2002)
void BIAS::Vector3< HOMGLINE2D_TYPE >::Set ( const HOMGLINE2D_TYPE &  scalar)
inlineinherited

set all elements to a scalar value

Author
Jan Woetzel, untested (02/28/2002)

Definition at line 160 of file Vector3.hh.

void BIAS::Vector3< HOMGLINE2D_TYPE >::Set ( const HOMGLINE2D_TYPE &  x,
const HOMGLINE2D_TYPE &  y,
const HOMGLINE2D_TYPE &  z 
)
inlineinherited

set elementwise with given scalar values

Author
Jan Woetzel alpha (02/28/2002)
void BIAS::Vector3< HOMGLINE2D_TYPE >::Set ( const Vector< HOMGLINE2D_TYPE > &  vec)
inlineinherited

Sets this form elements of Vector<T>.

void BIAS::Debug::SetDebugLevel ( const long int  lv)
inlineinherited
void BIAS::Debug::SetDebugLevel ( const std::string &  name)
inlineinherited

Definition at line 325 of file Debug.hh.

void BIAS::Debug::SetDebugStream ( const std::ostream &  os)
inlineinherited

Definition at line 398 of file Debug.hh.

void BIAS::EpipolarLine::SetEpipole ( HomgPoint2D ep)
inline

Definition at line 84 of file EpipolarLine.hh.

static void BIAS::Debug::SetGlobalDebugLevel ( long int  lev)
inlinestaticinherited

Definition at line 424 of file Debug.hh.

void BIAS::Vector3< HOMGLINE2D_TYPE >::SetZero ( )
inlineinherited

set all values to 0

Author
Jan Woetzel 01/2003
void BIAS::Debug::ShowDebugLevel ( std::ostream &  os = std::cout) const
inlineinherited

prints all internally known debuglevels

Author
woelk 09/2006

Definition at line 496 of file Debug.hh.

const unsigned int BIAS::Vector3< HOMGLINE2D_TYPE >::Size ( ) const
inlineinherited
Returns
the size of this vector
Author
Jan Woetzel (02/28/2002)

Definition at line 183 of file Vector3.hh.

const unsigned int BIAS::Vector3< HOMGLINE2D_TYPE >::size ( ) const
inlineinherited

Definition at line 185 of file Vector3.hh.

void BIAS::Vector3< HOMGLINE2D_TYPE >::Sub ( const HOMGLINE2D_TYPE &  scalar,
Vector3< HOMGLINE2D_TYPE > &  dest 
) const
inlineinherited

Substraction with a scalar, storing results in destination vector.

Author
Ingo Thomsen
void BIAS::Vector3< HOMGLINE2D_TYPE >::Sub ( const Vector3< HOMGLINE2D_TYPE > &  argvec,
Vector3< HOMGLINE2D_TYPE > &  destvec 
) const
inlineinherited

subtracting of two Vectors, storing the result in destvec

Author
Ingo Thomsen tested
void BIAS::Vector3< HOMGLINE2D_TYPE >::SubIP ( const HOMGLINE2D_TYPE &  scalar)
inlineinherited

Substraction (in place) of an scalar.

Author
Ingo Thomsen

Definition at line 318 of file Vector3.hh.

void BIAS::Vector3< HOMGLINE2D_TYPE >::SubIP ( const Vector3< HOMGLINE2D_TYPE > &  argvec)
inlineinherited

in place substraction

Author
Ingo Thomsen tested

Definition at line 359 of file Vector3.hh.

HOMGLINE2D_TYPE & BIAS::Vector3< HOMGLINE2D_TYPE >::Theta ( )
inlineinherited

Definition at line 441 of file Vector3.hh.

HOMGLINE2D_TYPE BIAS::Vector3< HOMGLINE2D_TYPE >::Theta ( ) const
inlineinherited

Definition at line 443 of file Vector3.hh.

Member Data Documentation

long int BIAS::Debug::_liDebugLevel
protectedinherited

Definition at line 510 of file Debug.hh.

Referenced by BIAS::Debug::operator=(), and BIAS::ImageBase::operator=().

long int BIAS::Debug::_liNextDebugLevel
protectedinherited

new concept, debuglevel are managed here in the debug class

Definition at line 516 of file Debug.hh.

Referenced by BIAS::Debug::operator=().

std::map<std::string, long int> BIAS::Debug::_String2Debuglevel
protectedinherited

Definition at line 517 of file Debug.hh.

Referenced by BIAS::Debug::operator=().

std::ostream BIAS::Debug::_zDebugStream
staticprotectedinherited

Definition at line 511 of file Debug.hh.

Referenced by BIAS::Debug::operator=().

double BIAS::EpipolarLine::Angle_
protected

Definition at line 288 of file EpipolarLine.hh.

Referenced by EpipolarLine(), Init(), operator=(), Recalc(), and ScanLine().

enum TEdge FarEdge_ BIAS::EpipolarLine::CloseEdge_
protected
HomgPoint2D BIAS::EpipolarLine::CloseIntersection_
protected
HomgPoint2D BIAS::EpipolarLine::Current_
protected

Definition at line 305 of file EpipolarLine.hh.

Referenced by CalcTransformed_(), EpipolarLine(), and ScanLine_().

HOMGLINE2D_TYPE BIAS::Vector3< HOMGLINE2D_TYPE >::data_[VECTOR3_SIZE]
protectedinherited
double BIAS::EpipolarLine::DeltaR_
protected

Definition at line 289 of file EpipolarLine.hh.

Referenced by EpipolarLine(), Init(), Recalc(), and ScanLine().

double BIAS::EpipolarLine::dx_
protected

Definition at line 299 of file EpipolarLine.hh.

Referenced by CalcTransformed_(), EpipolarLine(), operator=(), and ScanLine_().

double BIAS::EpipolarLine::dy_
protected

Definition at line 299 of file EpipolarLine.hh.

Referenced by CalcTransformed_(), EpipolarLine(), operator=(), and ScanLine_().

HomgPoint2D BIAS::EpipolarLine::End_
protected

Definition at line 308 of file EpipolarLine.hh.

Referenced by CalcTransformed_().

HomgPoint2D BIAS::EpipolarLine::Epipole_
protected
enum HomgPoint2D::EPosition BIAS::EpipolarLine::EpipolePosition_
protected

Definition at line 277 of file EpipolarLine.hh.

Referenced by Draw(), EpipolarLine(), Init(), operator=(), Recalc(), and ScanLine().

HomgPoint2D BIAS::EpipolarLine::FarIntersection_
protected
long int BIAS::Debug::GlobalDebugLevel = 0
staticprotectedinherited

Definition at line 513 of file Debug.hh.

unsigned int BIAS::EpipolarLine::Length_
protected

Definition at line 296 of file EpipolarLine.hh.

Referenced by ScanLine_().

double BIAS::EpipolarLine::maxx_
protected
double BIAS::EpipolarLine::maxy_
protected
double BIAS::EpipolarLine::minx_
protected

int Width_; // width of image int Height_; // height of image image borders in xdir, typically 0, width-1

Definition at line 285 of file EpipolarLine.hh.

Referenced by DetermineIntersectionsAndEpipoleDistances_(), EpipolarLine(), GetNextLine(), Init(), operator=(), Recalc(), and ScanLine().

double BIAS::EpipolarLine::miny_
protected

image borders in xdir, typically 0, height-1

Definition at line 287 of file EpipolarLine.hh.

Referenced by DetermineIntersectionsAndEpipoleDistances_(), EpipolarLine(), GetNextLine(), Init(), operator=(), Recalc(), and ScanLine().

HomgPoint2D BIAS::EpipolarLine::PInfinity_
protected

Definition at line 278 of file EpipolarLine.hh.

Referenced by Draw(), EpipolarLine(), and Init().

enum HomgPoint2D::EPosition BIAS::EpipolarLine::PInfinityPosition_
protected

Definition at line 279 of file EpipolarLine.hh.

Referenced by Draw(), and Init().

double BIAS::EpipolarLine::RMaxLine_
protected
double BIAS::EpipolarLine::RMinLine_
protected
unsigned int BIAS::EpipolarLine::ROffset_
protected

Definition at line 295 of file EpipolarLine.hh.

Referenced by ScanLine(), and ScanLine_().

bool BIAS::EpipolarLine::SearchOverInf_
protected

Definition at line 302 of file EpipolarLine.hh.

HomgPoint2D BIAS::EpipolarLine::Start_
protected

Definition at line 308 of file EpipolarLine.hh.

Referenced by CalcTransformed_().

EightWaySymmetryHomg BIAS::EpipolarLine::Sym_
protected

Definition at line 300 of file EpipolarLine.hh.

Referenced by CalcTransformed_(), Init(), Recalc(), ScanLine(), and ScanLine_().

HomgPoint2D BIAS::EpipolarLine::TransformedCurrent_
protected

Definition at line 307 of file EpipolarLine.hh.

Referenced by CalcTransformed_(), EpipolarLine(), and ScanLine_().

HomgPoint2D BIAS::EpipolarLine::TransformedEnd_
protected

Definition at line 306 of file EpipolarLine.hh.

Referenced by CalcTransformed_(), EpipolarLine(), ScanLine(), and ScanLine_().

HomgPoint2D BIAS::EpipolarLine::TransformedStart_
protected

Definition at line 306 of file EpipolarLine.hh.

Referenced by CalcTransformed_(), EpipolarLine(), and ScanLine().

enum TLineType BIAS::EpipolarLine::Type_
protected

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