Hugin trunk 0.1
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
HuginBase::Nona::SpaceTransform Class Reference

#include <SpaceTransform.h>

Public Member Functions

 SpaceTransform ()
 ctor.
 
 ~SpaceTransform ()
 dtor.
 
void Init (const SrcPanoImage &img, const vigra::Diff2D &destSize, PanoramaOptions::ProjectionFormat destProj, double destHFOV)
 Init Transform Create the stack of matrices for direct transform.
 
void InitInv (const SrcPanoImage &img, const vigra::Diff2D &destSize, PanoramaOptions::ProjectionFormat destProj, double destHFOV)
 Init Inv Transform Create the stack of matrices for reverse transform.
 
void InitRadialCorrect (const vigra::Size2D &sz, const std::vector< double > &radDist, const hugin_utils::FDiff2D &centerShift)
 transformation for radial correction only
 
void InitRadialCorrect (const SrcPanoImage &src, int channel=1)
 init radial correction from pano image description and selected channel (R=0, G=1, B=2), (TCA corr)
 
void InitInvRadialCorrect (const SrcPanoImage &src, int channel=1)
 Create a transform stack for distortion & TCA correction only.
 
void createTransform (const SrcPanoImage &src, const PanoramaOptions &dest)
 
void createInvTransform (const SrcPanoImage &src, const PanoramaOptions &dest)
 
void createTransform (const PanoramaData &pano, unsigned int imgNr, const PanoramaOptions &dest, vigra::Diff2D srcSize=vigra::Diff2D(0, 0))
 
void createInvTransform (const PanoramaData &pano, unsigned int imgNr, const PanoramaOptions &dest, vigra::Diff2D srcSize=vigra::Diff2D(0, 0))
 
void createTransform (const vigra::Diff2D &srcSize, const VariableMap &srcVars, Lens::LensProjectionFormat srcProj, const vigra::Diff2D &destSize, PanoramaOptions::ProjectionFormat destProj, double destHFOV)
 
void createInvTransform (const vigra::Diff2D &srcSize, const VariableMap &srcVars, Lens::LensProjectionFormat srcProj, const vigra::Diff2D &destSize, PanoramaOptions::ProjectionFormat destProj, double destHFOV)
 
bool transform (hugin_utils::FDiff2D &dest, const hugin_utils::FDiff2D &src) const
 transform Get the new coordinates
 
bool transformImgCoord (double &x_dest, double &y_dest, double x_src, double y_src) const
 like transform, but return image coordinates, not cartesian coordinates
 
bool transformImgCoord (hugin_utils::FDiff2D &dest, const hugin_utils::FDiff2D &src) const
 
bool isIdentity ()
 returns true if this transform is an identity transform
 

Private Member Functions

void AddTransform (trfn function_name, double var0, double var1=0.0f, double var2=0.0f, double var3=0.0f, double var4=0.0f, double var5=0.0f, double var6=0.0f, double var7=0.0f)
 add a new transformation
 
void AddTransform (trfn function_name, Matrix3 m, double var0, double var1=0.0f, double var2=0.0f, double var3=0.0f)
 

Private Attributes

bool m_Initialized
 was the class initialized ?
 
double m_srcTX
 used to convert from screen to cartesian coordinates
 
double m_srcTY
 
double m_destTX
 
double m_destTY
 
std::vector< fDescriptionm_Stack
 vector of transformations
 

Detailed Description

Definition at line 84 of file SpaceTransform.h.

Constructor & Destructor Documentation

◆ SpaceTransform()

HuginBase::Nona::SpaceTransform::SpaceTransform ( )

ctor.

ctor

Definition at line 34 of file SpaceTransform.cpp.

References m_Initialized.

◆ ~SpaceTransform()

HuginBase::Nona::SpaceTransform::~SpaceTransform ( )

dtor.

dtor

Definition at line 41 of file SpaceTransform.cpp.

Member Function Documentation

◆ AddTransform() [1/2]

void HuginBase::Nona::SpaceTransform::AddTransform ( trfn  function_name,
double  var0,
double  var1 = 0.0f,
double  var2 = 0.0f,
double  var3 = 0.0f,
double  var4 = 0.0f,
double  var5 = 0.0f,
double  var6 = 0.0f,
double  var7 = 0.0f 
)
private

◆ AddTransform() [2/2]

void HuginBase::Nona::SpaceTransform::AddTransform ( trfn  function_name,
Matrix3  m,
double  var0,
double  var1 = 0.0f,
double  var2 = 0.0f,
double  var3 = 0.0f 
)
private

◆ createInvTransform() [1/3]

void HuginBase::Nona::SpaceTransform::createInvTransform ( const PanoramaData pano,
unsigned int  imgNr,
const PanoramaOptions dest,
vigra::Diff2D  srcSize = vigra::Diff2D(0,0) 
)

Definition at line 1639 of file SpaceTransform.cpp.

References HuginBase::PanoramaData::getImage(), InitInv(), and threshold().

◆ createInvTransform() [2/3]

void HuginBase::Nona::SpaceTransform::createInvTransform ( const SrcPanoImage src,
const PanoramaOptions dest 
)

Definition at line 1615 of file SpaceTransform.cpp.

References InitInv(), and threshold().

◆ createInvTransform() [3/3]

void HuginBase::Nona::SpaceTransform::createInvTransform ( const vigra::Diff2D &  srcSize,
const VariableMap srcVars,
Lens::LensProjectionFormat  srcProj,
const vigra::Diff2D &  destSize,
PanoramaOptions::ProjectionFormat  destProj,
double  destHFOV 
)
Todo:
remove this obsolete function. Callers should use a SrcPanoImg instead

Definition at line 1673 of file SpaceTransform.cpp.

References InitInv(), HuginBase::SrcPanoImage::setSize(), and threshold().

◆ createTransform() [1/3]

void HuginBase::Nona::SpaceTransform::createTransform ( const PanoramaData pano,
unsigned int  imgNr,
const PanoramaOptions dest,
vigra::Diff2D  srcSize = vigra::Diff2D(0,0) 
)

Definition at line 1623 of file SpaceTransform.cpp.

References HuginBase::PanoramaData::getImage(), Init(), and threshold().

◆ createTransform() [2/3]

void HuginBase::Nona::SpaceTransform::createTransform ( const SrcPanoImage src,
const PanoramaOptions dest 
)

Definition at line 1606 of file SpaceTransform.cpp.

References Init(), and threshold().

◆ createTransform() [3/3]

void HuginBase::Nona::SpaceTransform::createTransform ( const vigra::Diff2D &  srcSize,
const VariableMap srcVars,
Lens::LensProjectionFormat  srcProj,
const vigra::Diff2D &  destSize,
PanoramaOptions::ProjectionFormat  destProj,
double  destHFOV 
)
Todo:
remove this obsolete function. Callers should use a SrcPanoImg instead

Definition at line 1654 of file SpaceTransform.cpp.

References Init(), HuginBase::SrcPanoImage::setSize(), and threshold().

◆ Init()

void HuginBase::Nona::SpaceTransform::Init ( const SrcPanoImage img,
const vigra::Diff2D &  destSize,
PanoramaOptions::ProjectionFormat  destProj,
double  destHFOV 
)

◆ InitInv()

void HuginBase::Nona::SpaceTransform::InitInv ( const SrcPanoImage img,
const vigra::Diff2D &  destSize,
PanoramaOptions::ProjectionFormat  destProj,
double  destHFOV 
)

◆ InitInvRadialCorrect()

void HuginBase::Nona::SpaceTransform::InitInvRadialCorrect ( const SrcPanoImage src,
int  channel = 1 
)

◆ InitRadialCorrect() [1/2]

void HuginBase::Nona::SpaceTransform::InitRadialCorrect ( const SrcPanoImage src,
int  channel = 1 
)

init radial correction from pano image description and selected channel (R=0, G=1, B=2), (TCA corr)

Create a transform stack for distortion & TCA correction only.

Definition at line 1134 of file SpaceTransform.cpp.

References AddTransform(), HuginBase::Nona::CalcCorrectionRadius_copy(), DEBUG_DEBUG, HuginBase::Nona::horiz(), m_destTX, m_destTY, m_srcTX, m_srcTY, m_Stack, HuginBase::Nona::radial(), threshold(), and HuginBase::Nona::vert().

◆ InitRadialCorrect() [2/2]

void HuginBase::Nona::SpaceTransform::InitRadialCorrect ( const vigra::Size2D &  sz,
const std::vector< double > &  radDist,
const hugin_utils::FDiff2D centerShift 
)

transformation for radial correction only

Create a transform stack for radial distortion correction only.

Definition at line 1046 of file SpaceTransform.cpp.

References AddTransform(), HuginBase::Nona::CalcCorrectionRadius_copy(), m_destTX, m_destTY, m_srcTX, m_srcTY, m_Stack, HuginBase::Nona::radial_shift(), and threshold().

Referenced by correctImage().

◆ isIdentity()

bool HuginBase::Nona::SpaceTransform::isIdentity ( )
inline

returns true if this transform is an identity transform

Definition at line 177 of file SpaceTransform.h.

◆ transform()

bool HuginBase::Nona::SpaceTransform::transform ( hugin_utils::FDiff2D dest,
const hugin_utils::FDiff2D src 
) const

transform Get the new coordinates

Definition at line 1693 of file SpaceTransform.cpp.

References m_Stack, and threshold().

Referenced by transformImgCoord().

◆ transformImgCoord() [1/2]

bool HuginBase::Nona::SpaceTransform::transformImgCoord ( double x_dest,
double y_dest,
double  x_src,
double  y_src 
) const

like transform, but return image coordinates, not cartesian coordinates

Definition at line 1710 of file SpaceTransform.cpp.

References m_destTX, m_destTY, m_srcTX, m_srcTY, threshold(), transform(), and hugin_utils::TDiff2D< T >::x.

◆ transformImgCoord() [2/2]

bool HuginBase::Nona::SpaceTransform::transformImgCoord ( hugin_utils::FDiff2D dest,
const hugin_utils::FDiff2D src 
) const
inline

Definition at line 169 of file SpaceTransform.h.

References threshold().

Member Data Documentation

◆ m_destTX

double HuginBase::Nona::SpaceTransform::m_destTX
private

◆ m_destTY

double HuginBase::Nona::SpaceTransform::m_destTY
private

◆ m_Initialized

bool HuginBase::Nona::SpaceTransform::m_Initialized
private

was the class initialized ?

Definition at line 191 of file SpaceTransform.h.

Referenced by SpaceTransform().

◆ m_srcTX

double HuginBase::Nona::SpaceTransform::m_srcTX
private

used to convert from screen to cartesian coordinates

Definition at line 194 of file SpaceTransform.h.

Referenced by Init(), InitInv(), InitInvRadialCorrect(), InitRadialCorrect(), InitRadialCorrect(), and transformImgCoord().

◆ m_srcTY

double HuginBase::Nona::SpaceTransform::m_srcTY
private

◆ m_Stack

std::vector<fDescription> HuginBase::Nona::SpaceTransform::m_Stack
private

vector of transformations

Definition at line 198 of file SpaceTransform.h.

Referenced by AddTransform(), AddTransform(), Init(), InitInv(), InitInvRadialCorrect(), InitRadialCorrect(), InitRadialCorrect(), and transform().


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