Image Component Library (ICL)
|
#include <SQFitter.h>
Classes | |
struct | eulerPosError |
Structure, that contains the error function for the euler angles and position parameters. More... | |
struct | shapeError |
Structure, that contains the error function for the shape parameters. More... | |
Public Types | |
typedef icl::math::LevenbergMarquardtFitter < float > | LM |
Levenberg-Marquardt. | |
Public Member Functions | |
SQFitter (icl::utils::SmartPtr< Vec > camCenter=utils::SmartPtr< Vec >()) | |
Constructor. | |
bool | fit (icl::geom::PointCloudObject &pcObj, const std::string &sShapePreference="bsc", size_t maxNumPoints=0) |
fits superquadrics into given point cloud, considering only given number of points | |
const SQParams & | getParams () const |
returns the last calculated parameters | |
void | setCameraCenter (const Vec &c) |
changes the camera center | |
Private Member Functions | |
void | fitSQ (LM::Matrix &Mx, math::Vec3 &viewDir, const std::string &sShapePreference) |
internal function, that fits a superquadric into given point cloud | |
void | preProcess (LM::Matrix &Mx, math::Vec3 &viewDir, const std::string &sShapePreference, icl::math::FixedMatrix< float, 3, 3 > &R, math::Vec3 ¢er, math::Vec3 &size, math::Vec3 &origin, float &scale) |
internal function, that prepares some data for fitting of superquadrics | |
LM::Result | fitShape (int i, icl::math::FixedMatrix< float, 3, 3 > &R, LM::Matrix &Mx, SQParams ¶ms, math::Vec3 &size, math::Vec3 &euler) |
internal function, that determines the shape parameters | |
Private Attributes | |
SQFitter::shapeError | sError |
structure containing an error function | |
SQFitter::eulerPosError | ePError |
structure containing an error function | |
LM::FunctionMat | sErrorFunc |
error function for the shape | |
LM::FunctionMat | ePErrorFunc |
error function for the euler angles and the position | |
LM | shapeLM |
Levenberg-Marquardt for the shape. | |
LM | eulerPosLM |
Levenberg-Marquardt for the euler angles and the position. | |
SQParams | params |
last solution | |
icl::utils::SmartPtr< Vec > | camCenter |
camera center |
typedef icl::math::LevenbergMarquardtFitter<float> icl::geom::SQFitter::LM |
Levenberg-Marquardt.
icl::geom::SQFitter::SQFitter | ( | icl::utils::SmartPtr< Vec > | camCenter = utils::SmartPtr< Vec >() | ) |
Constructor.
bool icl::geom::SQFitter::fit | ( | icl::geom::PointCloudObject & | pcObj, |
const std::string & | sShapePreference = "bsc" , |
||
size_t | maxNumPoints = 0 |
||
) |
fits superquadrics into given point cloud, considering only given number of points
LM::Result icl::geom::SQFitter::fitShape | ( | int | i, |
icl::math::FixedMatrix< float, 3, 3 > & | R, | ||
LM::Matrix & | Mx, | ||
SQParams & | params, | ||
math::Vec3 & | size, | ||
math::Vec3 & | euler | ||
) | [private] |
internal function, that determines the shape parameters
void icl::geom::SQFitter::fitSQ | ( | LM::Matrix & | Mx, |
math::Vec3 & | viewDir, | ||
const std::string & | sShapePreference | ||
) | [private] |
internal function, that fits a superquadric into given point cloud
const SQParams& icl::geom::SQFitter::getParams | ( | ) | const [inline] |
returns the last calculated parameters
void icl::geom::SQFitter::preProcess | ( | LM::Matrix & | Mx, |
math::Vec3 & | viewDir, | ||
const std::string & | sShapePreference, | ||
icl::math::FixedMatrix< float, 3, 3 > & | R, | ||
math::Vec3 & | center, | ||
math::Vec3 & | size, | ||
math::Vec3 & | origin, | ||
float & | scale | ||
) | [private] |
internal function, that prepares some data for fitting of superquadrics
void icl::geom::SQFitter::setCameraCenter | ( | const Vec & | c | ) |
changes the camera center
camera center
structure containing an error function
error function for the euler angles and the position
LM icl::geom::SQFitter::eulerPosLM [private] |
Levenberg-Marquardt for the euler angles and the position.
SQParams icl::geom::SQFitter::params [private] |
last solution
structure containing an error function
error function for the shape
LM icl::geom::SQFitter::shapeLM [private] |
Levenberg-Marquardt for the shape.