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< icl64fgetRotationMat ()
 
math::DynMatrix< icl64fgetTranslation ()
 
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< icl64fcenteredImage
 
math::DynMatrix< icl64fdistMat
 
math::DynMatrix< icl64fassignMat
 
double beta
 
double betaFinal
 
qt::ICLDrawWidgetdw
 
math::DynMatrix< icl64fiAdj
 
math::DynMatrix< icl64fwAdj
 
math::DynMatrix< icl64fd
 
math::DynMatrix< icl64fw
 
std::vector< math::DynMatrix< icl64f > > P
 
std::vector< math::DynMatrix< icl64f > > p
 
math::DynMatrix< icl64fL
 
math::DynMatrix< icl64finvL
 
math::DynMatrix< icl64fU
 
math::DynMatrix< icl64fs
 
math::DynMatrix< icl64fV
 
math::DynMatrix< icl64fsvdResult
 
math::DynMatrix< icl64feye2_2
 
math::DynMatrix< icl64fr1T
 
math::DynMatrix< icl64fr2T
 
math::DynMatrix< icl64fr3T
 
math::DynMatrix< icl64fprojectedU
 
math::DynMatrix< icl64fprojectedV
 
math::DynMatrix< icl64freplicatedProjectedU
 
math::DynMatrix< icl64freplicatedProjectedV
 
math::DynMatrix< icl64fcol1
 
math::DynMatrix< icl64fwkxj
 
math::DynMatrix< icl64fcol2
 
math::DynMatrix< icl64fwkyj
 
math::DynMatrix< icl64fpts2d
 
math::DynMatrix< icl64fsummedByColAssign
 
math::DynMatrix< icl64fweightedUi
 
math::DynMatrix< icl64fweightedVi
 
math::DynMatrix< icl64fR1
 
math::DynMatrix< icl64fR2
 
math::DynMatrix< icl64fR3
 
math::DynMatrix< icl64fROT
 
math::DynMatrix< icl64fT
 
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::DynMatrixicl64f >(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::DynMatrixicl64f >(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::DynMatrixicl64f >(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::DynMatrixicl64f >(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: