SLIP  1.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Attributes | Friends | List of all members
slip::SoloffCamera< Type > Class Template Reference

Define a SoloffCamera class. More...

#include <SoloffCamera.hpp>

Inheritance diagram for slip::SoloffCamera< Type >:
Inheritance graph

Public Member Functions

Constructors & Destructors
 SoloffCamera ()
 Default constructor of SoloffCamera. More...
 
 SoloffCamera (const self &rhs)
 Constructs a copy of the SoloffCamera rhs. More...
 
 ~SoloffCamera ()
 Destructor of the SoloffCamera. More...
 
Assignment operators and methods
selfoperator= (const self &rhs)
 Assign a SoloffCamera. More...
 
Accessors/Mutators
slip::MultivariatePolynomial
< Type, 3 > & 
calibration_polynomial_x () const
 Get the image x calibration polynomial. More...
 
void calibration_polynomial_x (const slip::MultivariatePolynomial< Type, 3 > &calibration_polynomial_x)
 Set the image x calibration polynomial equal to calibration_polynomial_x. More...
 
slip::MultivariatePolynomial
< Type, 3 > & 
calibration_polynomial_y () const
 Get the image y calibration polynomial. More...
 
void calibration_polynomial_y (const slip::MultivariatePolynomial< Type, 3 > &calibration_polynomial_y)
 Set the image y calibration polynomial equal to calibration_polynomial_x. More...
 
slip::MultivariatePolynomial
< Type, 3 > & 
calibration_polynomial_X () const
 Get the real world X calibration polynomial. More...
 
void calibration_polynomial_X (const slip::MultivariatePolynomial< Type, 3 > &calibration_polynomial_X)
 Set the real world X calibration polynomial equal to calibration_polynomial_X. More...
 
slip::MultivariatePolynomial
< Type, 3 > & 
calibration_polynomial_Y ()
 Get the real world Y calibration polynomial. More...
 
void calibration_polynomial_Y (const slip::MultivariatePolynomial< Type, 3 > &calibration_polynomial_Y)
 Set the real world Y calibration polynomial equal to calibration_polynomial_Y. More...
 
slip::Array< Type > & calibration_polynomial_coeff_x () const
 Get the image x calibration polynomial. More...
 
template<typename RandomAccessIterator >
void calibration_polynomial_coeff_x (RandomAccessIterator first, RandomAccessIterator last)
 Set the image x calibration polynomial coefficient to the range [first,last) More...
 
slip::Array< Type > & calibration_polynomial_coeff_y () const
 Get the image y calibration polynomial. More...
 
template<typename RandomAccessIterator >
void calibration_polynomial_coeff_y (RandomAccessIterator first, RandomAccessIterator last)
 Set the image y calibration polynomial coefficient to the range [first,last) More...
 
slip::Array< Type > & calibration_polynomial_coeff_X () const
 Get the real world X calibration polynomial. More...
 
template<typename RandomAccessIterator >
void calibration_polynomial_coeff_X (RandomAccessIterator first, RandomAccessIterator last)
 Set the real world X calibration polynomial coefficient to the range [first,last) More...
 
slip::Array< Type > & calibration_polynomial_coeff_Y () const
 Get the real world Y calibration polynomial. More...
 
template<typename RandomAccessIterator >
void calibration_polynomial_coeff_Y (RandomAccessIterator first, RandomAccessIterator last)
 Set the real world Y calibration polynomial coefficient to the range [first,last) More...
 
Projection methods
slip::Point2d< Type > projection (const slip::Point3d< Type > &p)
 Computes the projection of a 3d world point onto the image plane. More...
 
slip::Point3d< Type > backprojection (const slip::Point2d< Type > &p2, const Type &z)
 Computes the 3d world point corresponding to the backprojection of an image point. More...
 
Computation methods
void compute (const slip::Matrix< Type > &P)
 Computes the parameters of the Soloff camera model. More...
 
input/output methods
void read (const std::string &file)
 Read a multivariate polynomial from an ASCII file. More...
 
void write (const std::string &file)
 Write a multivariate polynomial to an ASCII file. More...
 

Public Attributes

slip::MultivariatePolynomial
< Type, 3 > * 
calibration_polynomial_x_
 
slip::MultivariatePolynomial
< Type, 3 > * 
calibration_polynomial_y_
 
slip::MultivariatePolynomial
< Type, 3 > * 
calibration_polynomial_X_
 
slip::MultivariatePolynomial
< Type, 3 > * 
calibration_polynomial_Y_
 
slip::Array< Type > * calibration_polynomial_coeff_x_
 
slip::Array< Type > * calibration_polynomial_coeff_y_
 
slip::Array< Type > * calibration_polynomial_coeff_X_
 
slip::Array< Type > * calibration_polynomial_coeff_Y_
 

Friends

class boost::serialization::access
 
i/o operators
std::ostream & operator<< (std::ostream &out, const self &c)
 Write the SoloffCamera to the ouput stream. More...
 

Detailed Description

template<typename Type>
class slip::SoloffCamera< Type >

Define a SoloffCamera class.

Author
Markus Jehle <jehle_markus_AT_yahoo.de>
Benoit Tremblais benoit.tremblais_AT_sic.univ-poitiers.fr
Lionel Thomas lionel.thomas_AT_univ-poitiers.fr
Guillaume Gomit guillaume.gomit_AT_univ-poitiers.fr
Version
0.0.1
Date
2012/02/13
Since
1.2.0
Remarks
Soloff SM,Adrian RJ,Liu ZC (1997) Distortion compensation for generalized stereoscopic particle image velocimetry. Meas. Sci. Technol. 8:1441-1445, doi:10.1088/0957-0233/8/12/008.
Parameters
TypeType of the coordinates of the SoloffCamera.

Definition at line 98 of file SoloffCamera.hpp.

Constructor & Destructor Documentation

template<typename Type >
slip::SoloffCamera< Type >::SoloffCamera ( )
inline

Default constructor of SoloffCamera.

Definition at line 129 of file SoloffCamera.hpp.

template<typename Type >
slip::SoloffCamera< Type >::SoloffCamera ( const self rhs)
inline

Constructs a copy of the SoloffCamera rhs.

Parameters
rhs

Definition at line 144 of file SoloffCamera.hpp.

template<typename Type >
slip::SoloffCamera< Type >::~SoloffCamera ( )
inline

Destructor of the SoloffCamera.

Definition at line 160 of file SoloffCamera.hpp.

Member Function Documentation

template<typename Type >
slip::Point3d<Type> slip::SoloffCamera< Type >::backprojection ( const slip::Point2d< Type > &  p2,
const Type &  z 
)
inlinevirtual

Computes the 3d world point corresponding to the backprojection of an image point.

Parameters
pPoint2d.
zDepth coordinate.
Returns
Point3d
Complexity: (19*,19+)

Implements slip::CameraModel< Type >.

Definition at line 517 of file SoloffCamera.hpp.

template<typename Type >
slip::Array<Type>& slip::SoloffCamera< Type >::calibration_polynomial_coeff_x ( ) const
inline

Get the image x calibration polynomial.

Returns
a the x slip::Array<Type> calibration coefficient of the polynomial.

Definition at line 351 of file SoloffCamera.hpp.

template<typename Type >
template<typename RandomAccessIterator >
void slip::SoloffCamera< Type >::calibration_polynomial_coeff_x ( RandomAccessIterator  first,
RandomAccessIterator  last 
)
inline

Set the image x calibration polynomial coefficient to the range [first,last)

Parameters
firstRandomAccessIterator that points to the first element of the coefficients of the x calibration polynomial.
lastRandomAccessIterator that points one-past-the-end element of the coefficients of the x calibration polynomial.
Precondition
[last,first) is a valid range.
(last-first) == 20

Definition at line 363 of file SoloffCamera.hpp.

template<typename Type >
slip::Array<Type>& slip::SoloffCamera< Type >::calibration_polynomial_coeff_X ( ) const
inline

Get the real world X calibration polynomial.

Returns
a the X slip::Array<Type> calibration coefficient of the polynomial.

Definition at line 400 of file SoloffCamera.hpp.

template<typename Type >
template<typename RandomAccessIterator >
void slip::SoloffCamera< Type >::calibration_polynomial_coeff_X ( RandomAccessIterator  first,
RandomAccessIterator  last 
)
inline

Set the real world X calibration polynomial coefficient to the range [first,last)

Parameters
firstRandomAccessIterator that points to the first element of the coefficients of the X calibration polynomial.
lastRandomAccessIterator that points one-past-the-end element of the coefficients of the X calibration polynomial.
Precondition
[last,first) is a valid range.
(last-first) == 20

Definition at line 413 of file SoloffCamera.hpp.

template<typename Type >
slip::Array<Type>& slip::SoloffCamera< Type >::calibration_polynomial_coeff_y ( ) const
inline

Get the image y calibration polynomial.

Returns
a the y slip::Array<Type> calibration coefficient of the polynomial.

Definition at line 375 of file SoloffCamera.hpp.

template<typename Type >
template<typename RandomAccessIterator >
void slip::SoloffCamera< Type >::calibration_polynomial_coeff_y ( RandomAccessIterator  first,
RandomAccessIterator  last 
)
inline

Set the image y calibration polynomial coefficient to the range [first,last)

Parameters
firstRandomAccessIterator that points to the first element of the coefficients of the y calibration polynomial.
lastRandomAccessIterator that points one-past-the-end element of the coefficients of the y calibration polynomial.
Precondition
[last,first) is a valid range.
(last-first) == 20

Definition at line 388 of file SoloffCamera.hpp.

template<typename Type >
slip::Array<Type>& slip::SoloffCamera< Type >::calibration_polynomial_coeff_Y ( ) const
inline

Get the real world Y calibration polynomial.

Returns
a the Y slip::Array<Type> calibration coefficient of the polynomial.

Definition at line 426 of file SoloffCamera.hpp.

template<typename Type >
template<typename RandomAccessIterator >
void slip::SoloffCamera< Type >::calibration_polynomial_coeff_Y ( RandomAccessIterator  first,
RandomAccessIterator  last 
)
inline

Set the real world Y calibration polynomial coefficient to the range [first,last)

Parameters
firstRandomAccessIterator that points to the first element of the coefficients of the Y calibration polynomial.
lastRandomAccessIterator that points one-past-the-end element of the coefficients of the Y calibration polynomial.
Precondition
[last,first) is a valid range.
(last-first) == 20

Definition at line 439 of file SoloffCamera.hpp.

template<typename Type >
slip::MultivariatePolynomial<Type,3>& slip::SoloffCamera< Type >::calibration_polynomial_x ( ) const
inline

Get the image x calibration polynomial.

Returns
a the x slip::MultivariatePolynomial<Type,3> calibration polynomial.

Definition at line 262 of file SoloffCamera.hpp.

template<typename Type >
void slip::SoloffCamera< Type >::calibration_polynomial_x ( const slip::MultivariatePolynomial< Type, 3 > &  calibration_polynomial_x)
inline

Set the image x calibration polynomial equal to calibration_polynomial_x.

Parameters
calibration_polynomial_xa slip::MultivariatePolynomial<Type,3> corresponding to the image x calibration polynomial
Precondition
calibration_polynomial_x.degree() == 3

Definition at line 272 of file SoloffCamera.hpp.

template<typename Type >
slip::MultivariatePolynomial<Type,3>& slip::SoloffCamera< Type >::calibration_polynomial_X ( ) const
inline

Get the real world X calibration polynomial.

Returns
a the X slip::MultivariatePolynomial<Type,3> calibration polynomial.

Definition at line 307 of file SoloffCamera.hpp.

template<typename Type >
void slip::SoloffCamera< Type >::calibration_polynomial_X ( const slip::MultivariatePolynomial< Type, 3 > &  calibration_polynomial_X)
inline

Set the real world X calibration polynomial equal to calibration_polynomial_X.

Parameters
calibration_polynomial_Xa slip::MultivariatePolynomial<Type,3> corresponding to the real world X calibration polynomial
Precondition
calibration_polynomial_X.degree() == 3

Definition at line 317 of file SoloffCamera.hpp.

template<typename Type >
slip::MultivariatePolynomial<Type,3>& slip::SoloffCamera< Type >::calibration_polynomial_y ( ) const
inline

Get the image y calibration polynomial.

Returns
a the y slip::MultivariatePolynomial<Type,3> calibration polynomial.

Definition at line 284 of file SoloffCamera.hpp.

template<typename Type >
void slip::SoloffCamera< Type >::calibration_polynomial_y ( const slip::MultivariatePolynomial< Type, 3 > &  calibration_polynomial_y)
inline

Set the image y calibration polynomial equal to calibration_polynomial_x.

Parameters
calibration_polynomial_ya slip::MultivariatePolynomial<Type,3> corresponding to the image y calibration polynomial
Precondition
calibration_polynomial_y.degree() == 3

Definition at line 294 of file SoloffCamera.hpp.

template<typename Type >
slip::MultivariatePolynomial<Type,3>& slip::SoloffCamera< Type >::calibration_polynomial_Y ( )
inline

Get the real world Y calibration polynomial.

Returns
a the Y slip::MultivariatePolynomial<Type,3> calibration polynomial.

Definition at line 329 of file SoloffCamera.hpp.

template<typename Type >
void slip::SoloffCamera< Type >::calibration_polynomial_Y ( const slip::MultivariatePolynomial< Type, 3 > &  calibration_polynomial_Y)
inline

Set the real world Y calibration polynomial equal to calibration_polynomial_Y.

Parameters
calibration_polynomial_Ya slip::MultivariatePolynomial<Type,3> corresponding to the real world Y calibration polynomial
Precondition
calibration_polynomial_Y.degree() == 3

Definition at line 339 of file SoloffCamera.hpp.

template<typename Type >
void slip::SoloffCamera< Type >::compute ( const slip::Matrix< Type > &  P)
inlinevirtual

Computes the parameters of the Soloff camera model.

Parameters
PMatrix containing the input data.
Remarks
Format: $(x,y)$ are the image coordinates, $(X,Y,Z)$ are the world coordinates.

\[ \begin{array}{ccccc} \cdots & \cdots & \cdots & \cdots & \cdots \\ x_{i} & y_{i} & X_{i} & Y_{i} & Z_{i} \\ \cdots & \cdots & \cdots & \cdots & \cdots \\ \end{array} \]

Implements slip::CameraModel< Type >.

Definition at line 584 of file SoloffCamera.hpp.

template<typename Type >
self& slip::SoloffCamera< Type >::operator= ( const self rhs)
inline

Assign a SoloffCamera.

Assign elements of SoloffCamera in rhs

Parameters
rhsSoloffCamera to get the values from.
Returns
self.

Definition at line 201 of file SoloffCamera.hpp.

template<typename Type >
slip::Point2d<Type> slip::SoloffCamera< Type >::projection ( const slip::Point3d< Type > &  p)
inlinevirtual

Computes the projection of a 3d world point onto the image plane.

Parameters
pPoint3d.
Returns
Point2d
Complexity: (19*,19+)

Implements slip::CameraModel< Type >.

Definition at line 461 of file SoloffCamera.hpp.

template<typename Type >
void slip::SoloffCamera< Type >::read ( const std::string &  file)
inlinevirtual

Read a multivariate polynomial from an ASCII file.

Parameters
fileFile path name.
Remarks
Format: $(Px_i)$ are the coefficients of the polynomial model for the x camera component $(Py_i)$ are the coefficients of the polynomial model for the y camera component $(PX_i)$ are the coefficients of the polynomial model for the X world component $(PY_i)$ are the coefficients of the polynomial model for the Y world component {array}{cccc} Px_{1} & Py_{1} & PX_{1} & PY_{1} \ & & & \ Px_{20} & Py_{20} & PX_{20} & PY_{20}\ {array} ]

Implements slip::CameraModel< Type >.

Definition at line 618 of file SoloffCamera.hpp.

template<typename Type >
void slip::SoloffCamera< Type >::write ( const std::string &  file)
inlinevirtual

Write a multivariate polynomial to an ASCII file.

Parameters
fileFile path name.
Remarks
Format: $(Px_i)$ are the coefficients of the polynomial model for the x camera component $(Py_i)$ are the coefficients of the polynomial model for the y camera component $(PX_i)$ are the coefficients of the polynomial model for the X world component $(PY_i)$ are the coefficients of the polynomial model for the Y world component {array}{cccc} Px_{1} & Py_{1} & PX_{1} & PY_{1} \ & & & \ Px_{20} & Py_{20} & PX_{20} & PY_{20}\ {array} ]

Implements slip::CameraModel< Type >.

Definition at line 652 of file SoloffCamera.hpp.

Friends And Related Function Documentation

template<typename Type >
friend class boost::serialization::access
friend

Definition at line 678 of file SoloffCamera.hpp.

template<typename Type >
std::ostream& operator<< ( std::ostream &  out,
const self c 
)
friend

Write the SoloffCamera to the ouput stream.

Parameters
outoutput stream
cSoloffCamera to write to the output stream

Definition at line 715 of file SoloffCamera.hpp.

Member Data Documentation

template<typename Type >
slip::Array<Type>* slip::SoloffCamera< Type >::calibration_polynomial_coeff_x_

Definition at line 672 of file SoloffCamera.hpp.

template<typename Type >
slip::Array<Type>* slip::SoloffCamera< Type >::calibration_polynomial_coeff_X_

Definition at line 674 of file SoloffCamera.hpp.

template<typename Type >
slip::Array<Type>* slip::SoloffCamera< Type >::calibration_polynomial_coeff_y_

Definition at line 673 of file SoloffCamera.hpp.

template<typename Type >
slip::Array<Type>* slip::SoloffCamera< Type >::calibration_polynomial_coeff_Y_

Definition at line 675 of file SoloffCamera.hpp.

template<typename Type >
slip::MultivariatePolynomial<Type,3>* slip::SoloffCamera< Type >::calibration_polynomial_x_

Definition at line 668 of file SoloffCamera.hpp.

template<typename Type >
slip::MultivariatePolynomial<Type,3>* slip::SoloffCamera< Type >::calibration_polynomial_X_

Definition at line 670 of file SoloffCamera.hpp.

template<typename Type >
slip::MultivariatePolynomial<Type,3>* slip::SoloffCamera< Type >::calibration_polynomial_y_

Definition at line 669 of file SoloffCamera.hpp.

template<typename Type >
slip::MultivariatePolynomial<Type,3>* slip::SoloffCamera< Type >::calibration_polynomial_Y_

Definition at line 671 of file SoloffCamera.hpp.


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