1 /**********
2 *
3 * This file is part of the TINA Open Source Image Analysis Environment
4 * henceforth known as TINA
5 *
6 * TINA is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU Lesser General Public License as
8 * published by the Free Software Foundation.
9 *
10 * TINA is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with TINA; if not, write to the Free Software Foundation, Inc.,
17 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 **********
20 *
21 * Program : TINA
22 * File : $Source: /home/tina/cvs/tina-libs/tina/geometry/geom_CamDef.h,v $
23 * Date : $Date: 2002/12/09 11:51:23 $
24 * Version : $Revision: 1.1.1.1 $
25 * CVS Id : $Id: geom_CamDef.h,v 1.1.1.1 2002/12/09 11:51:23 cvstina Exp $
26 *
27 * Notes :
28 *
29 *********
30 */
31
32 #ifndef TINA_GEOM_CAM_DEF_HDR
33 #define TINA_GEOM_CAM_DEF_HDR
34
35 #include <tina/sys/sysDef.h>
36 #include <tina/math/mathDef.h>
37
38 typedef struct camera
39 {
40 Ts_id ts_id; /* Tina structure identifier */
41 /** camera info **/
42 unsigned int type;
43 unsigned int label;
44
45 /** physical parameters **/
46 float f; /* focal length */
47 float pixel; /* notional pixel size */
48 float ax, ay; /* x and y expansion factors (aspect ratio ) */
49 float cx, cy; /* x and y image centre coordinates */
50 int width, height; /* image height and width for which relevant */
51
52 /** transformation from world to camera frame **/
53 Transform3 *transf;
54
55 /** optical distortion **/
56 void *distort_params;
57 void *(*copy_dist_func) ();
58 Vec2 (*distort_func) ();
59 Vec2 (*correct_func) ();
60
61 /** projection from unit camera to image coordinates **/
62 Mat3 cam_to_im;
63 /** projection from image to unit camera coordinates **/
64 Mat3 im_to_cam;
65 }
66 Camera;
67
68 #define CAMERA_SWAP_STRING "uuffffffiippwwwtt"
69
70 typedef struct parcam
71 {
72 Ts_id ts_id; /* Tina structure identifier */
73 /** camera info **/
74 unsigned int type;
75 unsigned int label;
76
77 float f; /* notional focal length */
78 float I; /* interocular separation */
79 float pixel; /* notional pixel size */
80
81 /* cameras and rectified counter parts */
82 struct camera *cam1; /* original camera 1 */
83 struct camera *rcam1; /* rectified camera 1 */
84 struct camera *cam2; /* original camera 2 */
85 struct camera *rcam2; /* rectified camera 2 */
86
87 struct mat3 rect1; /* rectification matrix for camera 1 */
88 struct mat3 derect1; /* derectification matrix for camera 1 */
89
90 struct mat3 rect2; /* rectification matrix for camera 2 */
91 struct mat3 derect2; /* derectification matrix for camera 2 */
92
93 struct mat3 e; /* epipolar colineation matrix */
94 } Parcam;
95
96 #define PARCAM_SWAP_STRING "uufffppppttttt"
97
98 #endif /* TINA_GEOM_CAM_DEF_HDR */
99
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.