projection
OmnidirectionalConfig.hpp
Go to the documentation of this file.
1 #ifndef PROJECTION_OMNIDIRECTIONALCONFIG_HPP__
2 #define PROJECTION_OMNIDIRECTIONALCONFIG_HPP__
3 
4 #include <vector>
5 #include <Eigen/Core>
6 #include <Eigen/Geometry>
7 
8 namespace projection
9 {
10 namespace omnicam
11 {
12 
13 class Model
14 {
15 public:
16  std::vector<double> pol; // the polynomial coefficients: pol[0] + x"pol[1] + x^2*pol[2] + ... + x^(N-1)*pol[N-1]
17  std::vector<double> invpol; // the coefficients of the inverse polynomial
18  double xc; // row coordinate of the center
19  double yc; // column coordinate of the center
20  double c; // affine parameter
21  double d; // affine parameter
22  double e; // affine parameter
23  size_t width; // image width
24  size_t height; // image height
25  double min_angle; // valid minimum angle
26  double max_angle; // valid maximum angle
27 
31  void loadFromFile( std::string filename );
36  bool world2cam( const Eigen::Vector3d& world, Eigen::Vector2d &cam ) const;
41  bool cam2world( const Eigen::Vector2d& cam, Eigen::Vector3d &world ) const;
42 
46  void setAngleRange( float min, float max );
47 
51  bool isValid() const;
52 
53  size_t getWidth() const;
54  size_t getHeight() const;
55 };
56 
58 {
60  : azimuth(0.0), elevation(0.0), fov(M_PI*0.5) {}
61 
63  double azimuth;
65  double elevation;
67  double fov;
68 };
69 
70 }
71 }
72 
73 #endif
void loadFromFile(std::string filename)
Definition: Omnidirectional.cpp:10
bool world2cam(const Eigen::Vector3d &world, Eigen::Vector2d &cam) const
Definition: Omnidirectional.cpp:67
double c
Definition: OmnidirectionalConfig.hpp:20
double elevation
elevation of the virtual pan til unit in rad
Definition: OmnidirectionalConfig.hpp:65
bool cam2world(const Eigen::Vector2d &cam, Eigen::Vector3d &world) const
Definition: Omnidirectional.cpp:108
double xc
Definition: OmnidirectionalConfig.hpp:18
double d
Definition: OmnidirectionalConfig.hpp:21
Definition: OmnidirectionalConfig.hpp:13
std::vector< double > invpol
Definition: OmnidirectionalConfig.hpp:17
size_t getHeight() const
Definition: Omnidirectional.cpp:151
double max_angle
Definition: OmnidirectionalConfig.hpp:26
double yc
Definition: OmnidirectionalConfig.hpp:19
std::vector< double > pol
Definition: OmnidirectionalConfig.hpp:16
void setAngleRange(float min, float max)
set the angle range for which the calibration is valid
Definition: Omnidirectional.cpp:140
size_t height
Definition: OmnidirectionalConfig.hpp:24
size_t getWidth() const
Definition: Omnidirectional.cpp:146
double min_angle
Definition: OmnidirectionalConfig.hpp:25
size_t width
Definition: OmnidirectionalConfig.hpp:23
double e
Definition: OmnidirectionalConfig.hpp:22
double azimuth
azimuth of the virtual pan tilt unit in rad
Definition: OmnidirectionalConfig.hpp:63
PlanarViewConfiguration()
Definition: OmnidirectionalConfig.hpp:59
bool isValid() const
return true if the configuration is valid
Definition: Omnidirectional.cpp:156
Definition: OmnidirectionalConfig.hpp:57
double fov
diagonal field of view in rad
Definition: OmnidirectionalConfig.hpp:67