#include <vpgl_proj_camera.h>
Public Member Functions | |
vpgl_proj_camera () | |
Default constructor makes an identity camera. | |
vpgl_proj_camera (const vnl_matrix_fixed< T, 3, 4 > &camera_matrix) | |
Construct from a vnl_matrix. | |
vpgl_proj_camera (const T *camera_matrix) | |
Construct from an array. The array should be in the order row1, row2, row3. | |
vpgl_proj_camera (const vpgl_proj_camera &cam) | |
Copy constructor. | |
virtual vcl_string | type_name () const |
class identity functions for casting. | |
virtual vpgl_proj_camera< T > * | clone (void) const |
Clone `this': creation of a new object and initialization. | |
const vpgl_proj_camera< T > & | operator= (const vpgl_proj_camera &cam) |
Assignment. | |
virtual | ~vpgl_proj_camera () |
bool | operator== (vpgl_proj_camera< T > const &that) const |
Equality test. | |
virtual void | project (const T x, const T y, const T z, T &u, T &v) const |
Projection from base class. | |
virtual vgl_homg_point_2d< T > | project (const vgl_homg_point_3d< T > &world_point) const |
Project a point in world coordinates onto the image plane. | |
vgl_homg_point_2d< T > | project (const vgl_point_3d< T > &world_point) const |
Non-homogeneous version of the above. | |
vgl_homg_point_2d< T > | operator() (const vgl_homg_point_3d< T > &world_point) const |
A shortcut to the above function. | |
vgl_line_segment_2d< T > | project (const vgl_line_segment_3d< T > &world_line) const |
Project a line in the world onto a line in the image plane. | |
vgl_line_segment_2d< T > | operator() (const vgl_line_segment_3d< T > &world_line) const |
Standard () forward projection operator. | |
vgl_line_2d< T > | project (const vgl_infinite_line_3d< T > &world_line) const |
Project an infinite line in the world onto an infinite line in the image plane. | |
vgl_line_2d< T > | operator() (const vgl_infinite_line_3d< T > &world_line) const |
Standard () forward projection operator. | |
virtual vgl_ray_3d< T > | backproject_ray (const vgl_homg_point_2d< T > &image_point) const |
Find the 3d ray that goes through the camera center and the provided image point. | |
virtual vgl_homg_line_3d_2_points< T > | backproject (const vgl_homg_point_2d< T > &image_point) const |
Find the 3d ray that goes through the camera center and the provided image point. | |
vgl_homg_plane_3d< T > | backproject (const vgl_homg_line_2d< T > &image_line) const |
Find the 3d plane that contains the camera center and the provided line in the image plane. | |
virtual vgl_homg_point_3d< T > | camera_center () const |
Find the 3d coordinates of the center of the camera. | |
virtual vgl_homg_plane_3d< T > | principal_plane () const |
Find the world plane parallel to the image plane intersecting the camera center. | |
vgl_homg_point_2d< T > | x_vanishing_point () const |
Find the image coordinates of the vanishing points of the world coordinate axes. | |
vgl_homg_point_2d< T > | y_vanishing_point () const |
vgl_homg_point_2d< T > | z_vanishing_point () const |
const vnl_matrix_fixed< T, 3, 4 > & | get_matrix () const |
Return a copy of the camera matrix. | |
vnl_svd< T > * | svd () const |
Get a copy of the svd of the get_matrix. | |
virtual bool | set_matrix (const vnl_matrix_fixed< T, 3, 4 > &new_camera_matrix) |
Setters mirror the constructors and return true if the setting was successful. | |
virtual bool | set_matrix (const T *new_camera_matrix) |
virtual void | save (vcl_string cam_path) |
Save in ascii format. | |
vcl_string | is_a () const |
bool | is_class (vcl_string const &name) const |
void | ref () |
void | unref () |
int | get_references () const |
bool | is_referenced () const |
Private Attributes | |
vnl_matrix_fixed< T, 3, 4 > | P_ |
The internal representation of the get_matrix. | |
vnl_svd< T > * | cached_svd_ |
Definition at line 66 of file vpgl_proj_camera.h.
vpgl_proj_camera< T >::vpgl_proj_camera | ( | ) |
Default constructor makes an identity camera.
Definition at line 21 of file vpgl_proj_camera.txx.
vpgl_proj_camera< T >::vpgl_proj_camera | ( | const vnl_matrix_fixed< T, 3, 4 > & | camera_matrix | ) |
Construct from a vnl_matrix.
Definition at line 30 of file vpgl_proj_camera.txx.
vpgl_proj_camera< T >::vpgl_proj_camera | ( | const T * | camera_matrix | ) |
Construct from an array. The array should be in the order row1, row2, row3.
Definition at line 38 of file vpgl_proj_camera.txx.
vpgl_proj_camera< T >::vpgl_proj_camera | ( | const vpgl_proj_camera< T > & | cam | ) |
Copy constructor.
Definition at line 46 of file vpgl_proj_camera.txx.
vpgl_proj_camera< T >::~vpgl_proj_camera | ( | ) | [virtual] |
Definition at line 65 of file vpgl_proj_camera.txx.
vgl_homg_line_3d_2_points< T > vpgl_proj_camera< T >::backproject | ( | const vgl_homg_point_2d< T > & | image_point | ) | const [virtual] |
Find the 3d ray that goes through the camera center and the provided image point.
Reimplemented in vpgl_perspective_camera< T >, and vpgl_affine_camera< T >.
Definition at line 143 of file vpgl_proj_camera.txx.
vgl_homg_plane_3d< T > vpgl_proj_camera< T >::backproject | ( | const vgl_homg_line_2d< T > & | image_line | ) | const |
Find the 3d plane that contains the camera center and the provided line in the image plane.
Definition at line 175 of file vpgl_proj_camera.txx.
vgl_ray_3d< T > vpgl_proj_camera< T >::backproject_ray | ( | const vgl_homg_point_2d< T > & | image_point | ) | const [virtual] |
Find the 3d ray that goes through the camera center and the provided image point.
Definition at line 159 of file vpgl_proj_camera.txx.
vgl_homg_point_3d< T > vpgl_proj_camera< T >::camera_center | ( | ) | const [virtual] |
Find the 3d coordinates of the center of the camera.
Reimplemented in vpgl_perspective_camera< T >, and vpgl_affine_camera< T >.
Definition at line 189 of file vpgl_proj_camera.txx.
vpgl_proj_camera< T > * vpgl_proj_camera< T >::clone | ( | void | ) | const [virtual] |
Clone `this': creation of a new object and initialization.
See Prototype pattern
Reimplemented in vpgl_perspective_camera< T >.
Definition at line 72 of file vpgl_proj_camera.txx.
const vnl_matrix_fixed<T,3,4>& vpgl_proj_camera< T >::get_matrix | ( | ) | const [inline] |
Return a copy of the camera matrix.
Definition at line 153 of file vpgl_proj_camera.h.
vcl_string vpgl_camera< T >::is_a | ( | ) | const [inline, inherited] |
Reimplemented in vpgl_geo_camera.
Definition at line 37 of file vpgl_camera.h.
bool vpgl_camera< T >::is_class | ( | vcl_string const & | name | ) | const [inline, inherited] |
Reimplemented in vpgl_geo_camera.
Definition at line 38 of file vpgl_camera.h.
vgl_homg_point_2d<T> vpgl_proj_camera< T >::operator() | ( | const vgl_homg_point_3d< T > & | world_point | ) | const [inline] |
A shortcut to the above function.
Definition at line 111 of file vpgl_proj_camera.h.
vgl_line_segment_2d<T> vpgl_proj_camera< T >::operator() | ( | const vgl_line_segment_3d< T > & | world_line | ) | const [inline] |
Standard () forward projection operator.
Definition at line 118 of file vpgl_proj_camera.h.
vgl_line_2d<T> vpgl_proj_camera< T >::operator() | ( | const vgl_infinite_line_3d< T > & | world_line | ) | const [inline] |
Standard () forward projection operator.
Definition at line 125 of file vpgl_proj_camera.h.
const vpgl_proj_camera< T > & vpgl_proj_camera< T >::operator= | ( | const vpgl_proj_camera< T > & | cam | ) |
Assignment.
Definition at line 55 of file vpgl_proj_camera.txx.
bool vpgl_proj_camera< T >::operator== | ( | vpgl_proj_camera< T > const & | that | ) | const [inline] |
Equality test.
Definition at line 95 of file vpgl_proj_camera.h.
virtual vgl_homg_plane_3d<T> vpgl_proj_camera< T >::principal_plane | ( | ) | const [inline, virtual] |
Find the world plane parallel to the image plane intersecting the camera center.
Reimplemented in vpgl_affine_camera< T >.
Definition at line 143 of file vpgl_proj_camera.h.
void vpgl_proj_camera< T >::project | ( | const T | x, |
const T | y, | ||
const T | z, | ||
T & | u, | ||
T & | v | ||
) | const [virtual] |
Projection from base class.
Implements vpgl_camera< T >.
Definition at line 101 of file vpgl_proj_camera.txx.
vgl_homg_point_2d< T > vpgl_proj_camera< T >::project | ( | const vgl_homg_point_3d< T > & | world_point | ) | const [virtual] |
Project a point in world coordinates onto the image plane.
Definition at line 82 of file vpgl_proj_camera.txx.
vgl_homg_point_2d<T> vpgl_proj_camera< T >::project | ( | const vgl_point_3d< T > & | world_point | ) | const [inline] |
Non-homogeneous version of the above.
Definition at line 107 of file vpgl_proj_camera.h.
vgl_line_segment_2d< T > vpgl_proj_camera< T >::project | ( | const vgl_line_segment_3d< T > & | world_line | ) | const |
Project a line in the world onto a line in the image plane.
Definition at line 118 of file vpgl_proj_camera.txx.
vgl_line_2d< T > vpgl_proj_camera< T >::project | ( | const vgl_infinite_line_3d< T > & | world_line | ) | const |
Project an infinite line in the world onto an infinite line in the image plane.
Definition at line 131 of file vpgl_proj_camera.txx.
void vpgl_proj_camera< T >::save | ( | vcl_string | cam_path | ) | [virtual] |
Save in ascii format.
Reimplemented in vpgl_perspective_camera< T >.
Definition at line 264 of file vpgl_proj_camera.txx.
bool vpgl_proj_camera< T >::set_matrix | ( | const vnl_matrix_fixed< T, 3, 4 > & | new_camera_matrix | ) | [virtual] |
Setters mirror the constructors and return true if the setting was successful.
In subclasses these should be redefined so that they won't allow setting of matrices with improper form.
Definition at line 217 of file vpgl_proj_camera.txx.
bool vpgl_proj_camera< T >::set_matrix | ( | const T * | new_camera_matrix | ) | [virtual] |
Definition at line 227 of file vpgl_proj_camera.txx.
vnl_svd< T > * vpgl_proj_camera< T >::svd | ( | ) | const |
Get a copy of the svd of the get_matrix.
The svd is cached when first computed and automatically recomputed when the matrix is changed.
Definition at line 200 of file vpgl_proj_camera.txx.
virtual vcl_string vpgl_proj_camera< T >::type_name | ( | ) | const [inline, virtual] |
class identity functions for casting.
Reimplemented from vpgl_camera< T >.
Reimplemented in vpgl_perspective_camera< T >, and vpgl_affine_camera< T >.
Definition at line 83 of file vpgl_proj_camera.h.
vgl_homg_point_2d<T> vpgl_proj_camera< T >::x_vanishing_point | ( | ) | const [inline] |
Find the image coordinates of the vanishing points of the world coordinate axes.
Definition at line 146 of file vpgl_proj_camera.h.
vgl_homg_point_2d<T> vpgl_proj_camera< T >::y_vanishing_point | ( | ) | const [inline] |
Definition at line 147 of file vpgl_proj_camera.h.
vgl_homg_point_2d<T> vpgl_proj_camera< T >::z_vanishing_point | ( | ) | const [inline] |
Definition at line 148 of file vpgl_proj_camera.h.
vnl_svd<T>* vpgl_proj_camera< T >::cached_svd_ [mutable, private] |
Definition at line 175 of file vpgl_proj_camera.h.
vnl_matrix_fixed<T,3,4> vpgl_proj_camera< T >::P_ [private] |
The internal representation of the get_matrix.
It is private so subclasses will need to access it through "get_matrix" and "set_matrix".
Definition at line 173 of file vpgl_proj_camera.h.