V1 Readme + rangement
This commit is contained in:
parent
3300e0efd3
commit
406e6d9b5d
1339 changed files with 248781 additions and 4282 deletions
73
ongoing/ASIFT_tests/demo_ASIFT_src/libNumerics/homography.cpp
Executable file
73
ongoing/ASIFT_tests/demo_ASIFT_src/libNumerics/homography.cpp
Executable file
|
@ -0,0 +1,73 @@
|
|||
// Authors: Unknown. Please, if you are the author of this file, or if you
|
||||
// know who are the authors of this file, let us know, so we can give the
|
||||
// adequate credits and/or get the adequate authorizations.
|
||||
|
||||
#include "homography.h"
|
||||
|
||||
namespace libNumerics {
|
||||
|
||||
/// Constructor.
|
||||
Homography::Homography()
|
||||
: m_H( matrix<double>::eye(3) )
|
||||
{}
|
||||
|
||||
/// Put to identity.
|
||||
void Homography::setId()
|
||||
{
|
||||
m_H = matrix<double>::eye(3);
|
||||
}
|
||||
|
||||
/// Set to translation.
|
||||
void Homography::setTrans(double dx, double dy)
|
||||
{
|
||||
setId();
|
||||
m_H(0,2) = dx;
|
||||
m_H(1,2) = dy;
|
||||
}
|
||||
|
||||
/// Set to zoom.
|
||||
void Homography::setZoom(double zx, double zy)
|
||||
{
|
||||
setId();
|
||||
m_H(0,0) = zx;
|
||||
m_H(1,1) = zy;
|
||||
}
|
||||
|
||||
/// Apply homography.
|
||||
void Homography::operator()(double& x, double& y) const
|
||||
{
|
||||
vector<double> m(3);
|
||||
m(0) = x;
|
||||
m(1) = y;
|
||||
m(2) = 1.0f;
|
||||
m = m_H * m;
|
||||
double z_1 = 1.0 / m(2);
|
||||
x = m(0) * z_1;
|
||||
y = m(1) * z_1;
|
||||
}
|
||||
|
||||
/// Compose homographies.
|
||||
Homography Homography::operator*(const Homography& rhs) const
|
||||
{
|
||||
Homography h;
|
||||
h.m_H = m_H * rhs.m_H;
|
||||
h.normalize();
|
||||
return h;
|
||||
}
|
||||
|
||||
/// Inverse homography.
|
||||
Homography Homography::inverse() const
|
||||
{
|
||||
Homography h;
|
||||
h.m_H = m_H.inv();
|
||||
h.normalize();
|
||||
return h;
|
||||
}
|
||||
|
||||
/// Put coef(2,2) to 1.
|
||||
void Homography::normalize()
|
||||
{
|
||||
m_H /= m_H(2,2);
|
||||
}
|
||||
|
||||
} // libNumerics
|
Loading…
Add table
Add a link
Reference in a new issue