Image Component Library (ICL)
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
icl::geom::SoftPosit Class Reference

#include <SoftPosit.h>

Public Member Functions

 SoftPosit ()
 
 ~SoftPosit ()
 
void init ()
 
math::DynMatrix< icl64f > getRotationMat ()
 
math::DynMatrix< icl64f > getTranslation ()
 
int numMatches (math::DynMatrix< icl64f > &assignMat)
 
void softPosit (math::DynMatrix< icl64f > imagePts, math::DynMatrix< icl64f > worldPts, double beta0, int noiseStd, math::DynMatrix< icl64f > initRot, math::DynMatrix< icl64f > initTrans, double focalLength, math::DynMatrix< icl64f > center=math::DynMatrix< icl64f >(2, 0), bool draw=true)
 
void softPosit (math::DynMatrix< icl64f > imagePts, math::DynMatrix< icl64f > imageAdj, math::DynMatrix< icl64f > worldPts, math::DynMatrix< icl64f > worldAdj, double beta0, int noiseStd, math::DynMatrix< icl64f > initRot, math::DynMatrix< icl64f > initTrans, double focalLength, qt::ICLDrawWidget &w, math::DynMatrix< icl64f > center=math::DynMatrix< icl64f >(2, 0), bool draw=true)
 
void softPosit (std::vector< utils::Point32f > imagePts, std::vector< math::FixedColVector< double, 3 > > worldPts, double beta0, int noiseStd, math::DynMatrix< icl64f > initRot, math::DynMatrix< icl64f > initTrans, double focalLength, math::DynMatrix< icl64f > center=math::DynMatrix< icl64f >(2, 0))
 
void softPosit (std::vector< utils::Point32f > imagePts, math::DynMatrix< icl64f > imageAdj, std::vector< math::FixedColVector< double, 3 > > worldPts, math::DynMatrix< icl64f > worldAdj, double beta0, int noiseStd, math::DynMatrix< icl64f > initRot, math::DynMatrix< icl64f > initTrans, double focalLength, qt::ICLDrawWidget &w, math::DynMatrix< icl64f > center=math::DynMatrix< icl64f >(2, 0), bool draw=true)
 
void proj3dto2d (math::DynMatrix< icl64f > pts3d, math::DynMatrix< icl64f > &rot, math::DynMatrix< icl64f > &trans, double flength, int objdim, math::DynMatrix< icl64f > &center, math::DynMatrix< icl64f > &pts2d)
 
bool isNullMatrix (const math::DynMatrix< icl64f > &M)
 
void visualize (const math::DynMatrix< icl64f > &imagePts, const math::DynMatrix< icl64f > &projWorldPts, unsigned int delay=200)
 
void visualize (qt::ICLDrawWidget &w, const math::DynMatrix< icl64f > &imagePts, const math::DynMatrix< icl64f > &imageAdj, const math::DynMatrix< icl64f > &projWorldPts, const math::DynMatrix< icl64f > &worldAdj, unsigned int delay=200)
 

Private Member Functions

math::DynMatrix< icl64f > & cross (math::DynMatrix< icl64f > &x, math::DynMatrix< icl64f > &y, math::DynMatrix< icl64f > &r)
 
void maxPosRatio (math::DynMatrix< icl64f > &assignMat, math::DynMatrix< icl64f > &pos, math::DynMatrix< icl64f > &ratios)
 
math::DynMatrix< icl64f > & sinkhornImp (math::DynMatrix< icl64f > &M)
 
double cond (math::DynMatrix< icl64f > &A)
 
double max (math::DynMatrix< icl64f > s)
 

Private Attributes

unsigned int nbWorldPts
 
unsigned int nbImagePts
 
math::DynMatrix< icl64f > centeredImage
 
math::DynMatrix< icl64f > distMat
 
math::DynMatrix< icl64f > assignMat
 
double beta
 
double betaFinal
 
qt::ICLDrawWidget * dw
 
math::DynMatrix< icl64f > iAdj
 
math::DynMatrix< icl64f > wAdj
 
math::DynMatrix< icl64f > d
 
math::DynMatrix< icl64f > w
 
std::vector< math::DynMatrix< icl64f > > P
 
std::vector< math::DynMatrix< icl64f > > p
 
math::DynMatrix< icl64f > L
 
math::DynMatrix< icl64f > invL
 
math::DynMatrix< icl64f > U
 
math::DynMatrix< icl64f > s
 
math::DynMatrix< icl64f > V
 
math::DynMatrix< icl64f > svdResult
 
math::DynMatrix< icl64f > eye2_2
 
math::DynMatrix< icl64f > r1T
 
math::DynMatrix< icl64f > r2T
 
math::DynMatrix< icl64f > r3T
 
math::DynMatrix< icl64f > projectedU
 
math::DynMatrix< icl64f > projectedV
 
math::DynMatrix< icl64f > replicatedProjectedU
 
math::DynMatrix< icl64f > replicatedProjectedV
 
math::DynMatrix< icl64f > col1
 
math::DynMatrix< icl64f > wkxj
 
math::DynMatrix< icl64f > col2
 
math::DynMatrix< icl64f > wkyj
 
math::DynMatrix< icl64f > pts2d
 
math::DynMatrix< icl64f > summedByColAssign
 
math::DynMatrix< icl64f > weightedUi
 
math::DynMatrix< icl64f > weightedVi
 
math::DynMatrix< icl64f > R1
 
math::DynMatrix< icl64f > R2
 
math::DynMatrix< icl64f > R3
 
math::DynMatrix< icl64f > ROT
 
math::DynMatrix< icl64f > T
 
double Tz
 
double Tx
 
double Ty
 
double sumNonslack
 
double sum
 
double alpha
 
bool draw
 

Static Private Attributes

static const double betaUpdate
 
static const double betaZero
 

Constructor & Destructor Documentation

◆ SoftPosit()

icl::geom::SoftPosit::SoftPosit ( )

◆ ~SoftPosit()

icl::geom::SoftPosit::~SoftPosit ( )

Member Function Documentation

◆ cond()

double icl::geom::SoftPosit::cond ( math::DynMatrix< icl64f > &  A)
private

◆ cross()

math::DynMatrix<icl64f>& icl::geom::SoftPosit::cross ( math::DynMatrix< icl64f > &  x,
math::DynMatrix< icl64f > &  y,
math::DynMatrix< icl64f > &  r 
)
private

◆ getRotationMat()

math::DynMatrix<icl64f> icl::geom::SoftPosit::getRotationMat ( )
inline

◆ getTranslation()

math::DynMatrix<icl64f> icl::geom::SoftPosit::getTranslation ( )
inline

◆ init()

void icl::geom::SoftPosit::init ( )

◆ isNullMatrix()

bool icl::geom::SoftPosit::isNullMatrix ( const math::DynMatrix< icl64f > &  M)
inline

◆ max()

double icl::geom::SoftPosit::max ( math::DynMatrix< icl64f >  s)
private

◆ maxPosRatio()

void icl::geom::SoftPosit::maxPosRatio ( math::DynMatrix< icl64f > &  assignMat,
math::DynMatrix< icl64f > &  pos,
math::DynMatrix< icl64f > &  ratios 
)
private

◆ numMatches()

int icl::geom::SoftPosit::numMatches ( math::DynMatrix< icl64f > &  assignMat)

◆ proj3dto2d()

void icl::geom::SoftPosit::proj3dto2d ( math::DynMatrix< icl64f >  pts3d,
math::DynMatrix< icl64f > &  rot,
math::DynMatrix< icl64f > &  trans,
double  flength,
int  objdim,
math::DynMatrix< icl64f > &  center,
math::DynMatrix< icl64f > &  pts2d 
)

◆ sinkhornImp()

math::DynMatrix<icl64f>& icl::geom::SoftPosit::sinkhornImp ( math::DynMatrix< icl64f > &  M)
private

◆ softPosit() [1/4]

void icl::geom::SoftPosit::softPosit ( math::DynMatrix< icl64f >  imagePts,
math::DynMatrix< icl64f >  worldPts,
double  beta0,
int  noiseStd,
math::DynMatrix< icl64f >  initRot,
math::DynMatrix< icl64f >  initTrans,
double  focalLength,
math::DynMatrix< icl64f >  center = math::DynMatrix< icl64f >(2, 0),
bool  draw = true 
)

◆ softPosit() [2/4]

void icl::geom::SoftPosit::softPosit ( math::DynMatrix< icl64f >  imagePts,
math::DynMatrix< icl64f >  imageAdj,
math::DynMatrix< icl64f >  worldPts,
math::DynMatrix< icl64f >  worldAdj,
double  beta0,
int  noiseStd,
math::DynMatrix< icl64f >  initRot,
math::DynMatrix< icl64f >  initTrans,
double  focalLength,
qt::ICLDrawWidget &  w,
math::DynMatrix< icl64f >  center = math::DynMatrix< icl64f >(2, 0),
bool  draw = true 
)

◆ softPosit() [3/4]

void icl::geom::SoftPosit::softPosit ( std::vector< utils::Point32f >  imagePts,
std::vector< math::FixedColVector< double, 3 > >  worldPts,
double  beta0,
int  noiseStd,
math::DynMatrix< icl64f >  initRot,
math::DynMatrix< icl64f >  initTrans,
double  focalLength,
math::DynMatrix< icl64f >  center = math::DynMatrix< icl64f >(2, 0) 
)

◆ softPosit() [4/4]

void icl::geom::SoftPosit::softPosit ( std::vector< utils::Point32f >  imagePts,
math::DynMatrix< icl64f >  imageAdj,
std::vector< math::FixedColVector< double, 3 > >  worldPts,
math::DynMatrix< icl64f >  worldAdj,
double  beta0,
int  noiseStd,
math::DynMatrix< icl64f >  initRot,
math::DynMatrix< icl64f >  initTrans,
double  focalLength,
qt::ICLDrawWidget &  w,
math::DynMatrix< icl64f >  center = math::DynMatrix< icl64f >(2, 0),
bool  draw = true 
)

◆ visualize() [1/2]

void icl::geom::SoftPosit::visualize ( const math::DynMatrix< icl64f > &  imagePts,
const math::DynMatrix< icl64f > &  projWorldPts,
unsigned int  delay = 200 
)

◆ visualize() [2/2]

void icl::geom::SoftPosit::visualize ( qt::ICLDrawWidget &  w,
const math::DynMatrix< icl64f > &  imagePts,
const math::DynMatrix< icl64f > &  imageAdj,
const math::DynMatrix< icl64f > &  projWorldPts,
const math::DynMatrix< icl64f > &  worldAdj,
unsigned int  delay = 200 
)

Member Data Documentation

◆ alpha

double icl::geom::SoftPosit::alpha
private

◆ assignMat

math::DynMatrix<icl64f> icl::geom::SoftPosit::assignMat
private

◆ beta

double icl::geom::SoftPosit::beta
private

◆ betaFinal

double icl::geom::SoftPosit::betaFinal
private

◆ betaUpdate

const double icl::geom::SoftPosit::betaUpdate
staticprivate

◆ betaZero

const double icl::geom::SoftPosit::betaZero
staticprivate

◆ centeredImage

math::DynMatrix<icl64f> icl::geom::SoftPosit::centeredImage
private

◆ col1

math::DynMatrix<icl64f> icl::geom::SoftPosit::col1
private

◆ col2

math::DynMatrix<icl64f> icl::geom::SoftPosit::col2
private

◆ d

math::DynMatrix<icl64f> icl::geom::SoftPosit::d
private

◆ distMat

math::DynMatrix<icl64f> icl::geom::SoftPosit::distMat
private

◆ draw

bool icl::geom::SoftPosit::draw
private

◆ dw

qt::ICLDrawWidget* icl::geom::SoftPosit::dw
private

◆ eye2_2

math::DynMatrix<icl64f> icl::geom::SoftPosit::eye2_2
private

◆ iAdj

math::DynMatrix<icl64f> icl::geom::SoftPosit::iAdj
private

◆ invL

math::DynMatrix<icl64f> icl::geom::SoftPosit::invL
private

◆ L

math::DynMatrix<icl64f> icl::geom::SoftPosit::L
private

◆ nbImagePts

unsigned int icl::geom::SoftPosit::nbImagePts
private

◆ nbWorldPts

unsigned int icl::geom::SoftPosit::nbWorldPts
private

◆ P

std::vector<math::DynMatrix<icl64f> > icl::geom::SoftPosit::P
private

◆ p

std::vector<math::DynMatrix<icl64f> > icl::geom::SoftPosit::p
private

◆ projectedU

math::DynMatrix<icl64f> icl::geom::SoftPosit::projectedU
private

◆ projectedV

math::DynMatrix<icl64f> icl::geom::SoftPosit::projectedV
private

◆ pts2d

math::DynMatrix<icl64f> icl::geom::SoftPosit::pts2d
private

◆ R1

math::DynMatrix<icl64f> icl::geom::SoftPosit::R1
private

◆ r1T

math::DynMatrix<icl64f> icl::geom::SoftPosit::r1T
private

◆ R2

math::DynMatrix<icl64f> icl::geom::SoftPosit::R2
private

◆ r2T

math::DynMatrix<icl64f> icl::geom::SoftPosit::r2T
private

◆ R3

math::DynMatrix<icl64f> icl::geom::SoftPosit::R3
private

◆ r3T

math::DynMatrix<icl64f> icl::geom::SoftPosit::r3T
private

◆ replicatedProjectedU

math::DynMatrix<icl64f> icl::geom::SoftPosit::replicatedProjectedU
private

◆ replicatedProjectedV

math::DynMatrix<icl64f> icl::geom::SoftPosit::replicatedProjectedV
private

◆ ROT

math::DynMatrix<icl64f> icl::geom::SoftPosit::ROT
private

◆ s

math::DynMatrix<icl64f> icl::geom::SoftPosit::s
private

◆ sum

double icl::geom::SoftPosit::sum
private

◆ summedByColAssign

math::DynMatrix<icl64f> icl::geom::SoftPosit::summedByColAssign
private

◆ sumNonslack

double icl::geom::SoftPosit::sumNonslack
private

◆ svdResult

math::DynMatrix<icl64f> icl::geom::SoftPosit::svdResult
private

◆ T

math::DynMatrix<icl64f> icl::geom::SoftPosit::T
private

◆ Tx

double icl::geom::SoftPosit::Tx
private

◆ Ty

double icl::geom::SoftPosit::Ty
private

◆ Tz

double icl::geom::SoftPosit::Tz
private

◆ U

math::DynMatrix<icl64f> icl::geom::SoftPosit::U
private

◆ V

math::DynMatrix<icl64f> icl::geom::SoftPosit::V
private

◆ w

math::DynMatrix<icl64f> icl::geom::SoftPosit::w
private

◆ wAdj

math::DynMatrix<icl64f> icl::geom::SoftPosit::wAdj
private

◆ weightedUi

math::DynMatrix<icl64f> icl::geom::SoftPosit::weightedUi
private

◆ weightedVi

math::DynMatrix<icl64f> icl::geom::SoftPosit::weightedVi
private

◆ wkxj

math::DynMatrix<icl64f> icl::geom::SoftPosit::wkxj
private

◆ wkyj

math::DynMatrix<icl64f> icl::geom::SoftPosit::wkyj
private

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