Classes | |
class | AlignedBox< _Scalar, _AmbientDim > |
More... | |
class | AngleAxis< _Scalar > |
More... | |
class | Homogeneous< MatrixType, _Direction > |
More... | |
class | Hyperplane< _Scalar, _AmbientDim > |
More... | |
class | ParametrizedLine< _Scalar, _AmbientDim > |
More... | |
class | Quaternion< _Scalar > |
More... | |
class | Rotation2D< _Scalar > |
More... | |
class | Scaling |
More... | |
class | Transform< _Scalar, _Dim, _Mode > |
More... | |
class | Translation< _Scalar, _Dim > |
More... | |
Typedefs | |
typedef Projective2f | Transform2f |
typedef Projective2d | Transform2d |
typedef Projective3f | Transform3f |
typedef Projective3d | Transform3d |
typedef AngleAxis< float > | AngleAxisf |
single precision angle-axis type | |
typedef AngleAxis< double > | AngleAxisd |
double precision angle-axis type | |
typedef Quaternion< float > | Quaternionf |
single precision quaternion type | |
typedef Quaternion< double > | Quaterniond |
double precision quaternion type | |
typedef Map< Quaternion< float >, 0 > | QuaternionMapf |
Map an unaligned array of single precision scalar as a quaternion. | |
typedef Map< Quaternion < double >, 0 > | QuaternionMapd |
Map an unaligned array of double precision scalar as a quaternion. | |
typedef Map< Quaternion< float > , Aligned > | QuaternionMapAlignedf |
Map a 16-bits aligned array of double precision scalars as a quaternion. | |
typedef Map< Quaternion < double >, Aligned > | QuaternionMapAlignedd |
Map a 16-bits aligned array of double precision scalars as a quaternion. | |
typedef Rotation2D< float > | Rotation2Df |
single precision 2D rotation type | |
typedef Rotation2D< double > | Rotation2Dd |
double precision 2D rotation type | |
typedef DiagonalMatrix< float, 2 > | AlignedScaling2f |
typedef DiagonalMatrix< double, 2 > | AlignedScaling2d |
typedef DiagonalMatrix< float, 3 > | AlignedScaling3f |
typedef DiagonalMatrix< double, 3 > | AlignedScaling3d |
typedef Transform< float, 2, Isometry > | Isometry2f |
typedef Transform< float, 3, Isometry > | Isometry3f |
typedef Transform< double, 2, Isometry > | Isometry2d |
typedef Transform< double, 3, Isometry > | Isometry3d |
typedef Transform< float, 2, Affine > | Affine2f |
typedef Transform< float, 3, Affine > | Affine3f |
typedef Transform< double, 2, Affine > | Affine2d |
typedef Transform< double, 3, Affine > | Affine3d |
typedef Transform< float, 2, AffineCompact > | AffineCompact2f |
typedef Transform< float, 3, AffineCompact > | AffineCompact3f |
typedef Transform< double, 2, AffineCompact > | AffineCompact2d |
typedef Transform< double, 3, AffineCompact > | AffineCompact3d |
typedef Transform< float, 2, Projective > | Projective2f |
typedef Transform< float, 3, Projective > | Projective3f |
typedef Transform< double, 2, Projective > | Projective2d |
typedef Transform< double, 3, Projective > | Projective3d |
typedef Translation< float, 2 > | Translation2f |
typedef Translation< double, 2 > | Translation2d |
typedef Translation< float, 3 > | Translation3f |
typedef Translation< double, 3 > | Translation3d |
Functions | |
template<typename Derived , typename OtherDerived > | |
internal::umeyama_transform_matrix_type < Derived, OtherDerived > ::type | umeyama (const MatrixBase< Derived > &src, const MatrixBase< OtherDerived > &dst, bool with_scaling=true) |
| |
Matrix< Scalar, 3, 1 > | MatrixBase::eulerAngles (Index a0, Index a1, Index a2) const |
|
Definition at line 588 of file Geometry/Transform.h.
Definition at line 584 of file Geometry/Transform.h.
Definition at line 590 of file Geometry/Transform.h.
Definition at line 586 of file Geometry/Transform.h.
typedef Transform<double,2,AffineCompact> AffineCompact2d |
Definition at line 597 of file Geometry/Transform.h.
typedef Transform<float,2,AffineCompact> AffineCompact2f |
Definition at line 593 of file Geometry/Transform.h.
typedef Transform<double,3,AffineCompact> AffineCompact3d |
Definition at line 599 of file Geometry/Transform.h.
typedef Transform<float,3,AffineCompact> AffineCompact3f |
Definition at line 595 of file Geometry/Transform.h.
typedef DiagonalMatrix<double,2> AlignedScaling2d |
typedef DiagonalMatrix<float, 2> AlignedScaling2f |
typedef DiagonalMatrix<double,3> AlignedScaling3d |
typedef DiagonalMatrix<float, 3> AlignedScaling3f |
typedef AngleAxis<double> AngleAxisd |
double precision angle-axis type
Definition at line 162 of file AngleAxis.h.
typedef AngleAxis<float> AngleAxisf |
single precision angle-axis type
Definition at line 159 of file AngleAxis.h.
typedef Transform<double,2,Isometry> Isometry2d |
Definition at line 579 of file Geometry/Transform.h.
typedef Transform<float,2,Isometry> Isometry2f |
Definition at line 575 of file Geometry/Transform.h.
typedef Transform<double,3,Isometry> Isometry3d |
Definition at line 581 of file Geometry/Transform.h.
typedef Transform<float,3,Isometry> Isometry3f |
Definition at line 577 of file Geometry/Transform.h.
typedef Transform<double,2,Projective> Projective2d |
Definition at line 606 of file Geometry/Transform.h.
typedef Transform<float,2,Projective> Projective2f |
Definition at line 602 of file Geometry/Transform.h.
typedef Transform<double,3,Projective> Projective3d |
Definition at line 608 of file Geometry/Transform.h.
typedef Transform<float,3,Projective> Projective3f |
Definition at line 604 of file Geometry/Transform.h.
typedef Quaternion<double> Quaterniond |
double precision quaternion type
Definition at line 282 of file Quaternion.h.
typedef Quaternion<float> Quaternionf |
single precision quaternion type
Definition at line 279 of file Quaternion.h.
typedef Map<Quaternion<double>, Aligned> QuaternionMapAlignedd |
Map a 16-bits aligned array of double precision scalars as a quaternion.
Definition at line 385 of file Quaternion.h.
typedef Map<Quaternion<float>, Aligned> QuaternionMapAlignedf |
Map a 16-bits aligned array of double precision scalars as a quaternion.
Definition at line 382 of file Quaternion.h.
typedef Map<Quaternion<double>, 0> QuaternionMapd |
Map an unaligned array of double precision scalar as a quaternion.
Definition at line 379 of file Quaternion.h.
typedef Map<Quaternion<float>, 0> QuaternionMapf |
Map an unaligned array of single precision scalar as a quaternion.
Definition at line 376 of file Quaternion.h.
typedef Rotation2D<double> Rotation2Dd |
double precision 2D rotation type
Definition at line 139 of file Rotation2D.h.
typedef Rotation2D<float> Rotation2Df |
single precision 2D rotation type
Definition at line 136 of file Rotation2D.h.
typedef Projective2d Transform2d |
Definition at line 31 of file Eigen2Support/Transform.h.
typedef Projective2f Transform2f |
Definition at line 29 of file Eigen2Support/Transform.h.
typedef Projective3d Transform3d |
Definition at line 35 of file Eigen2Support/Transform.h.
typedef Projective3f Transform3f |
Definition at line 33 of file Eigen2Support/Transform.h.
typedef Translation<double,2> Translation2d |
Definition at line 184 of file Translation.h.
typedef Translation<float, 2> Translation2f |
Definition at line 183 of file Translation.h.
typedef Translation<double,3> Translation3d |
Definition at line 186 of file Translation.h.
typedef Translation<float, 3> Translation3f |
Definition at line 185 of file Translation.h.
Matrix< typename MatrixBase< Derived >::Scalar, 3, 1 > MatrixBase< Derived >::eulerAngles | ( | Index | a0, | |
Index | a1, | |||
Index | a2 | |||
) | const [inline, inherited] |
*this
using the convention defined by the triplet (a0,a1,a2)Each of the three parameters a0,a1,a2 represents the respective rotation axis as an integer in {0,1,2}. For instance, in:
Vector3f ea = mat.eulerAngles(2, 0, 2);
"2" represents the z axis and "0" the x axis, etc. The returned angles are such that we have the following equality:
mat == AngleAxisf(ea[0], Vector3f::UnitZ()) * AngleAxisf(ea[1], Vector3f::UnitX()) * AngleAxisf(ea[2], Vector3f::UnitZ());
This corresponds to the right-multiply conventions (with right hand side frames).
Definition at line 46 of file EulerAngles.h.
References EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE.
internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type umeyama | ( | const MatrixBase< Derived > & | src, | |
const MatrixBase< OtherDerived > & | dst, | |||
bool | with_scaling = true | |||
) |
Returns the transformation between two point sets.
The algorithm is based on: "Least-squares estimation of transformation parameters between two point patterns", Shinji Umeyama, PAMI 1991, DOI: 10.1109/34.88573
It estimates parameters and
such that
is minimized.
The algorithm is based on the analysis of the covariance matrix of the input point sets
and
where
is corresponding to the dimension (which is typically small). The analysis is involving the SVD having a complexity of
though the actual computational effort lies in the covariance matrix computation which has an asymptotic lower bound of
when the input point sets have dimension
.
Currently the method is working only for floating point matrices.
src | Source points ![]() | |
dst | Destination points ![]() | |
with_scaling | Sets ![]() false is passed. |
Definition at line 108 of file Umeyama.h.
References DenseBase< Derived >::colwise(), ComputeFullU, ComputeFullV, EIGEN_SIZE_MIN_PREFER_DYNAMIC, EIGEN_STATIC_ASSERT, internal::isMuchSmallerThan(), JacobiSVD< _MatrixType, QRPreconditioner >::matrixU(), JacobiSVD< _MatrixType, QRPreconditioner >::matrixV(), rank(), DenseBase< Derived >::rowwise(), and JacobiSVD< _MatrixType, QRPreconditioner >::singularValues().
Page generated by Doxygen 1.7.1 for MRPT 0.9.4 SVN: at Mon Jan 10 23:33:19 UTC 2011 |