libcvd
Public Member Functions | Static Public Attributes | List of all members
CVD::Camera::Harris Class Reference

A Camera with zero skew and Harris distortion. More...

#include <camera.h>

Public Member Functions

void load (std::istream &is)
 Load parameters from a stream. More...
 
void save (std::ostream &os) const
 Save parameters to a stream. More...
 
TooN::Vector< 2 > linearproject (const TooN::Vector< 2 > &camframe, TooN::DefaultPrecision scale=1) const
 Fast linear projection for working out what's there.
 
TooN::Vector< 2 > project (const TooN::Vector< 2 > &camframe) const
 Project from Euclidean camera frame to image plane.
 
TooN::Vector< 2 > unproject (const TooN::Vector< 2 > &imframe) const
 Project from image plane to a Euclidean camera.
 
TooN::Matrix< 2, 2 > get_derivative_at (const TooN::Vector< 2 > &pt) const
 Evaluate the derivative of image frame wrt camera frame at an arbitrary point pt. More...
 
TooN::Matrix< num_parameters, 2 > get_parameter_derivs_at (const TooN::Vector< 2 > &pt) const
 Evaluate the derivative of the image coordinates of a given point pt in camera coordinates with respect to each of the internal camera parameters.
 
TooN::Vector< num_parametersget_parameter_derivs (const TooN::Vector< 2 > &position, const TooN::Vector< 2 > &direction) const
 Get the component of the motion of a point in the direction provided with respect to each of the internal camera parameters. More...
 
TooN::Vector< num_parameters > & get_parameters ()
 Update the internal camera parameters by adding the vector given. More...
 
const TooN::Vector< num_parameters > & get_parameters () const
 

Static Public Attributes

static const int num_parameters = 5
 The number of parameters in the camera.
 

Detailed Description

A Camera with zero skew and Harris distortion.

The camera distortion model is as follows:

\( \hat{\rho} = \frac{\rho}{\sqrt{1 + \alpha \rho^2}} \)

This camera has the advantage that inversion of the radial distortion is trivial, and unproject has a unique, closed-form solution. However, the square root makes this camera slower than some of the other models for many use cases.

Member Function Documentation

◆ get_derivative_at()

TooN::Matrix<2, 2> CVD::Camera::Harris::get_derivative_at ( const TooN::Vector< 2 > &  pt) const
inline

Evaluate the derivative of image frame wrt camera frame at an arbitrary point pt.

Get the derivative of image frame wrt camera frame at the last computed projection in the form \( \begin{bmatrix} \frac{\partial \text{im1}}{\partial \text{cam1}} & \frac{\partial \text{im1}}{\partial \text{cam2}} \\ \frac{\partial \text{im2}}{\partial \text{cam1}} & \frac{\partial \text{im2}}{\partial \text{cam2}} \end{bmatrix} \)

See also
get_derivative()

◆ get_parameter_derivs()

TooN::Vector<num_parameters> CVD::Camera::Harris::get_parameter_derivs ( const TooN::Vector< 2 > &  position,
const TooN::Vector< 2 > &  direction 
) const
inline

Get the component of the motion of a point in the direction provided with respect to each of the internal camera parameters.

Parameters
directionThe (x,y) direction to use

◆ get_parameters()

TooN::Vector<num_parameters>& CVD::Camera::Harris::get_parameters ( )
inline

Update the internal camera parameters by adding the vector given.

Parameters
updatesUpdate vector in the format \( \begin{pmatrix}\Delta f_u & \Delta f_v & \Delta u_0 & \Delta v_0 & \Delta c\end{pmatrix} \) Returns the vector of camera parameters in the format \( \begin{pmatrix}f_u & f_v & u_0 & v_0 & c\end{pmatrix} \)

◆ load()

void CVD::Camera::Harris::load ( std::istream &  is)
inline

Load parameters from a stream.

Parameters
isThe stream to use

◆ save()

void CVD::Camera::Harris::save ( std::ostream &  os) const
inline

Save parameters to a stream.

Parameters
osThe stream to use

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