IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
ipsdk::math::transform::Homography2d Class Reference

Transformation class allowing to manage 2d homography transformations. More...

#include <Homography2d.h>

Inheritance diagram for ipsdk::math::transform::Homography2d:
ipsdk::math::transform::BaseLinearGeometricTransform2d ipsdk::math::transform::BaseGeometricTransform2d

Public Types

enum  eTransformParams {
  eTP_Axx, eTP_Axy, eTP_Axw, eTP_Ayx,
  eTP_Ayy, eTP_Ayw, eTP_Awx, eTP_Awy,
  eTP_Aww
}
 

Public Member Functions

 IPSDK_DECLARE_TRANSFORM2D (Homography2d)
 
void setParams (const Vector &params)
 select parameters associated to transformation More...
 
void setIdentity ()
 set transformation parameters to identity
 
void apply (ipReal64 &x, ipReal64 &y) const
 apply transformation to a given point
 
Matrix3d getHomogenousMatrix () const
 retrieve homogeneous matrix associated to transformation
 
Vector getParams () const
 retrieve parameters associated to transformation
 
bool isInvertible () const
 check whether transformation can be inverted
 
Matrix3d getInvHomogenousMatrix () const
 retrieve invert of homogeneous matrix associated to transformation More...
 
Vector getInvParams () const
 retrieve invert parameters associated to transformation More...
 
Constructors and destructor
 Homography2d ()
 
 Homography2d (const Matrix3d &matA)
 
 Homography2d (const ipReal64 axx, const ipReal64 axy, const ipReal64 axw, const ipReal64 ayx, const ipReal64 ayy, const ipReal64 ayw, const ipReal64 awx, const ipReal64 awy, const ipReal64 aww)
 
 ~Homography2d ()
 
void setParams (const Matrix3d &matA)
 select parameters associated to transformation
 
void setParams (const ipReal64 axx, const ipReal64 axy, const ipReal64 axw, const ipReal64 ayx, const ipReal64 ayy, const ipReal64 ayw, const ipReal64 awx, const ipReal64 awy, const ipReal64 aww)
 select parameters associated to transformation
 
- Public Member Functions inherited from ipsdk::math::transform::BaseLinearGeometricTransform2d
bool isLinear () const
 retrieve flag indicating whether geometric transform is linear
 
 BaseLinearGeometricTransform2d ()
 
virtual ~BaseLinearGeometricTransform2d ()=0
 
- Public Member Functions inherited from ipsdk::math::transform::BaseGeometricTransform2d
virtual eGeometricTransform2dType getGeometricTransform2dType () const =0
 retrieve geometric transform 2d type
 
virtual ipUInt32 getNbParams () const =0
 retrieve number of parameters associated to geometric transformation
 
template<typename T >
void apply (const T xIn, const T yIn, T &xOut, T &yOut) const
 apply transformation to a given point
 
GeometricTransform2dPtr createInverted () const
 create an inversed transformation from current one More...
 
 BaseGeometricTransform2d ()
 
virtual ~BaseGeometricTransform2d ()
 

Static Public Member Functions

static Matrix3d getHomogenousMatrix (const ipReal64 axx, const ipReal64 axy, const ipReal64 axw, const ipReal64 ayx, const ipReal64 ayy, const ipReal64 ayw, const ipReal64 awx, const ipReal64 awy, const ipReal64 aww)
 retrieve homogeneous matrix associated to transformation
 
static bool isInvertible (const ipReal64 axx, const ipReal64 axy, const ipReal64 axw, const ipReal64 ayx, const ipReal64 ayy, const ipReal64 ayw, const ipReal64 awx, const ipReal64 awy, const ipReal64 aww)
 check whether transformation can be inverted
 
static Matrix3d getInvHomogenousMatrix (const ipReal64 axx, const ipReal64 axy, const ipReal64 axw, const ipReal64 ayx, const ipReal64 ayy, const ipReal64 ayw, const ipReal64 awx, const ipReal64 awy, const ipReal64 aww)
 retrieve invert of homogeneous matrix associated to transformation More...
 
static void getInvParams (ipReal64 &axx, ipReal64 &axy, ipReal64 &axw, ipReal64 &ayx, ipReal64 &ayy, ipReal64 &ayw, ipReal64 &awx, ipReal64 &awy, ipReal64 &aww)
 retrieve invert parameters for transformation More...
 
static Vector getIdentityParams ()
 retrieve identity parameters for transformation
 
static bool transform (const Matrix3d &matA, ipReal64 &x, ipReal64 &y)
 application of transformation to a point More...
 
static bool transform (const ipReal64 axx, const ipReal64 axy, const ipReal64 axw, const ipReal64 ayx, const ipReal64 ayy, const ipReal64 ayw, const ipReal64 awx, const ipReal64 awy, const ipReal64 aww, ipReal64 &x, ipReal64 &y)
 application of transformation to a point More...
 

Protected Attributes

Matrix3d _matA
 matrix associated to homography
 

Additional Inherited Members

- Static Public Attributes inherited from ipsdk::math::transform::BaseLinearGeometricTransform2d
static const bool g_bLinear = true
 linear status for transformation
 

Detailed Description

Transformation class allowing to manage 2d homography transformations.

Author
E.Noirfalise
Date
2016/12/22

Member Enumeration Documentation

◆ eTransformParams

parameters list associated to transformation

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eTP_Axx 

xx term of matrix

eTP_Axy 

xy term of matrix

eTP_Axw 

xw term of matrix

eTP_Ayx 

yx term of matrix

eTP_Ayy 

yy term of matrix

eTP_Ayw 

yw term of matrix

eTP_Awx 

wx term of matrix

eTP_Awy 

wy term of matrix

eTP_Aww 

ww term of matrix

Member Function Documentation

◆ transform() [1/2]

static bool ipsdk::math::transform::Homography2d::transform ( const Matrix3d matA,
ipReal64 x,
ipReal64 y 
)
inlinestatic

application of transformation to a point

Returns
false in case of null denominator

◆ transform() [2/2]

static bool ipsdk::math::transform::Homography2d::transform ( const ipReal64  axx,
const ipReal64  axy,
const ipReal64  axw,
const ipReal64  ayx,
const ipReal64  ayy,
const ipReal64  ayw,
const ipReal64  awx,
const ipReal64  awy,
const ipReal64  aww,
ipReal64 x,
ipReal64 y 
)
inlinestatic

application of transformation to a point

Returns
false in case of null denominator

◆ getInvHomogenousMatrix() [1/2]

static Matrix3d ipsdk::math::transform::Homography2d::getInvHomogenousMatrix ( const ipReal64  axx,
const ipReal64  axy,
const ipReal64  axw,
const ipReal64  ayx,
const ipReal64  ayy,
const ipReal64  ayw,
const ipReal64  awx,
const ipReal64  awy,
const ipReal64  aww 
)
inlinestatic

retrieve invert of homogeneous matrix associated to transformation

Exceptions
ipsdk::math::IPSDKMathExceptionif isInvertible(axx, axy, axw, ayx, ayy, ayw, awx, awy, aww) == false

◆ getInvParams() [1/2]

static void ipsdk::math::transform::Homography2d::getInvParams ( ipReal64 axx,
ipReal64 axy,
ipReal64 axw,
ipReal64 ayx,
ipReal64 ayy,
ipReal64 ayw,
ipReal64 awx,
ipReal64 awy,
ipReal64 aww 
)
static

retrieve invert parameters for transformation

Exceptions
ipsdk::math::IPSDKMathExceptionif isInvertible(axx, axy, axw, ayx, ayy, ayw, awx, awy, aww) == false

◆ setParams()

void ipsdk::math::transform::Homography2d::setParams ( const Vector params)
virtual

select parameters associated to transformation

Exceptions
ipsdk::math::IPSDKMathExceptionif params.size() != getNbParams()

Implements ipsdk::math::transform::BaseGeometricTransform2d.

◆ getInvHomogenousMatrix() [2/2]

Matrix3d ipsdk::math::transform::Homography2d::getInvHomogenousMatrix ( ) const
virtual

retrieve invert of homogeneous matrix associated to transformation

Exceptions
ipsdk::math::IPSDKMathExceptionif isInvertible() == false

Implements ipsdk::math::transform::BaseLinearGeometricTransform2d.

◆ getInvParams() [2/2]

Vector ipsdk::math::transform::Homography2d::getInvParams ( ) const
virtual

retrieve invert parameters associated to transformation

Exceptions
ipsdk::math::IPSDKMathExceptionif isInvertible() == false

Implements ipsdk::math::transform::BaseGeometricTransform2d.


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