camtrans.h
Go to the documentation of this file.
1 /**************************************************************************************************
2  Software License Agreement (BSD License)
3 
4  Copyright (c) 2011-2013, LAR toolkit developers - University of Aveiro - http://lars.mec.ua.pt
5  All rights reserved.
6 
7  Redistribution and use in source and binary forms, with or without modification, are permitted
8  provided that the following conditions are met:
9 
10  *Redistributions of source code must retain the above copyright notice, this list of
11  conditions and the following disclaimer.
12  *Redistributions in binary form must reproduce the above copyright notice, this list of
13  conditions and the following disclaimer in the documentation and/or other materials provided
14  with the distribution.
15  *Neither the name of the University of Aveiro nor the names of its contributors may be used to
16  endorse or promote products derived from this software without specific prior written permission.
17 
18  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
19  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
21  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
24  IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
25  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 ***************************************************************************************************/
33 #ifndef __dgc_camtrans_h__
34 #define __dgc_camtrans_h__
35 
36 //#ifdef __cplusplus
37 //extern "C" {
38 //#endif
39 
40 //
41 // Camera representation
42 //
43 
44 typedef struct _CamTrans CamTrans;
45 
46 CamTrans * camtrans_new_spherical (double width, double height,
47  double fx, double fy,
48  double cx, double cy, double skew,
49  const double position[3], const double orientation_quat[4],
50  const double distortion_cx, const double distortion_cy,
51  double distortion_param);
52 
53 
54 // Destructor
55 void camtrans_destroy (CamTrans* t);
56 
57 // Computes internal matrix representations from parameters
59 
60 
61 // Gets camera position in world frame (calibration frame)
62 void camtrans_get_position (const CamTrans* t,
63  double pos[3]);
64 void camtrans_get_orientation (const CamTrans *t,
65  double orientation[4]);
66 
67 void camtrans_get_world_to_cam_matrix (const CamTrans *t, double matrix[12]);
68 void camtrans_get_cam_to_world_matrix (const CamTrans *t, double matrix[9]);
69 
70 
71 double camtrans_get_focal_length_x (const CamTrans *t);
72 double camtrans_get_focal_length_y (const CamTrans *t);
73 double camtrans_get_image_width (const CamTrans *t);
74 double camtrans_get_image_height (const CamTrans *t);
75 double camtrans_get_principal_x (const CamTrans *t);
76 double camtrans_get_principal_y (const CamTrans *t);
77 double camtrans_get_width (const CamTrans *t);
78 double camtrans_get_height (const CamTrans *t);
79 void camtrans_get_distortion_center (const CamTrans *t, double *x, double *y);
80 
85 void camtrans_scale_image (CamTrans *t, const double scale_factor);
86 
87 
92 void camtrans_rotate_camera (CamTrans *t, const double q[4]);
93 
98 void camtrans_set_distortion_center (CamTrans *t, const double cx,
99  const double cy);
100 
101 
102 //
103 // Camera functions
104 //
105 
111 int camtrans_undistort_pixel (const CamTrans* cam,
112  const double x, const double y,
113  double* ox, double* oy);
114 
120 int camtrans_distort_pixel (const CamTrans* cam,
121  const double x, const double y,
122  double* ox, double* oy);
123 
124 // Produce 3D ray from pixel measurement, to body frame coordinates
125 int camtrans_pixel_to_ray (const CamTrans* cam,
126  const double x, const double y,
127  double ray[3]);
128 
135 int camtrans_project_point (const CamTrans* cam,
136  const double * p_world,
137  const int distort,
138  double* ox, double* oy, double *oz);
139 
145 int camtrans_project_line (const CamTrans *cam,
146  const double *l_world,
147  double *ox, double *oy, double *oz);
148 
149 
150 //#ifdef __cplusplus
151 //}
152 //#endif
153 
154 #endif
155 
double height
Definition: camtrans.cpp:152
void camtrans_rotate_camera(CamTrans *t, const double q[4])
Definition: camtrans.cpp:375
void camtrans_get_world_to_cam_matrix(const CamTrans *t, double matrix[12])
Definition: camtrans.cpp:271
int camtrans_distort_pixel(const CamTrans *cam, const double x, const double y, double *ox, double *oy)
Definition: camtrans.cpp:416
void camtrans_get_distortion_center(const CamTrans *t, double *x, double *y)
Definition: camtrans.cpp:329
double fx
Definition: camtrans.cpp:157
double camtrans_get_focal_length_x(const CamTrans *t)
Definition: camtrans.cpp:286
double camtrans_get_height(const CamTrans *t)
Definition: camtrans.cpp:323
void camtrans_compute_matrices(CamTrans *t)
Definition: camtrans.cpp:221
double camtrans_get_width(const CamTrans *t)
Definition: camtrans.cpp:317
void camtrans_get_position(const CamTrans *t, double pos[3])
Definition: camtrans.cpp:255
void camtrans_scale_image(CamTrans *t, const double scale_factor)
Definition: camtrans.cpp:341
double skew
Definition: camtrans.cpp:161
int camtrans_project_line(const CamTrans *cam, const double *l_world, double *ox, double *oy, double *oz)
Definition: camtrans.cpp:478
double orientation[4]
Definition: camtrans.cpp:155
double camtrans_get_principal_y(const CamTrans *t)
Definition: camtrans.cpp:311
void camtrans_get_orientation(const CamTrans *t, double orientation[4])
Definition: camtrans.cpp:262
double cx
Definition: camtrans.cpp:159
int camtrans_project_point(const CamTrans *cam, const double *p_world, const int distort, double *ox, double *oy, double *oz)
Definition: camtrans.cpp:444
void camtrans_destroy(CamTrans *t)
Definition: camtrans.cpp:211
double position[3]
Definition: camtrans.cpp:154
double cy
Definition: camtrans.cpp:160
CamTrans * camtrans_new_spherical(double width, double height, double fx, double fy, double cx, double cy, double skew, const double position[3], const double orientation_quat[4], const double distortion_cx, const double distortion_cy, double distortion_param)
Definition: camtrans.cpp:172
void camtrans_set_distortion_center(CamTrans *t, const double cx, const double cy)
Definition: camtrans.cpp:390
int camtrans_undistort_pixel(const CamTrans *cam, const double x, const double y, double *ox, double *oy)
Definition: camtrans.cpp:405
double camtrans_get_image_height(const CamTrans *t)
Definition: camtrans.cpp:301
double camtrans_get_focal_length_y(const CamTrans *t)
Definition: camtrans.cpp:291
double fy
Definition: camtrans.cpp:158
double camtrans_get_image_width(const CamTrans *t)
Definition: camtrans.cpp:296
int camtrans_pixel_to_ray(const CamTrans *cam, const double x, const double y, double ray[3])
Definition: camtrans.cpp:424
void camtrans_get_cam_to_world_matrix(const CamTrans *t, double matrix[9])
Definition: camtrans.cpp:278
double camtrans_get_principal_x(const CamTrans *t)
Definition: camtrans.cpp:306
double width
Definition: camtrans.cpp:151


mit_darpa_logs_player
Author(s): Miguel Oliveira
autogenerated on Mon Mar 2 2015 01:32:15