Gocator API

GoGeoCal.h
Go to the documentation of this file.
1 /**
2 * @file GoGeoCal.h
3 * @brief Declares the GoGeoCal class.
4 *
5 * @internal
6 * Copyright (C) 2017-2020 by LMI Technologies Inc.
7 * Licensed under the MIT License.
8 * Redistributed files must retain the above copyright notice.
9 */
10 #ifndef GO_GEOCAL_H
11 #define GO_GEOCAL_H
12
13 #include <GoSdk/GoSdkDef.h>
14
15 kBeginHeader()
16
17 /**
18 * @class GoGeoCal
19 * @extends kObject
20 * @ingroup GoSdk
21 * @brief Contains the GeoCal data for a sensor.
22 * Do not read the GeoCal file directly, use this class to parse it.
23 */
24 typedef kObject GoGeoCal;
25
26 /**
27 * Gets sensor ID
28 *
29 * @public @memberof GoGeoCal
30 * @version Introduced in firmware 4.7.0.130
31 * @param cal GoGeoCal object.
32 * @return Sensor ID.
33 */
34 GoFx(k32u) GoGeoCal_Id(GoGeoCal cal);
35
36 /**
37 * Gets timestamp
38 *
39 * @public @memberof GoGeoCal
40 * @version Introduced in firmware 4.7.0.130
41 * @param cal GoGeoCal object.
42 * @return Timestamp.
43 */
44 GoFx(const kChar*) GoGeoCal_Timestamp(GoGeoCal cal);
45
46 /**
47 * Gets count of cameras.
48 *
49 * @public @memberof GoGeoCal
50 * @version Introduced in firmware 4.7.0.130
51 * @param cal GoGeoCal object.
52 * @return Count of views.
53 */
54 GoFx(kSize) GoGeoCal_CameraCount(GoGeoCal cal);
55
56 /**
57 * Gets calibration window.
58 *
59 * @public @memberof GoGeoCal
60 * @version Introduced in firmware 4.7.0.130
61 * @param cal GoGeoCal object.
62 * @param cameraIndex Camera index. kERROR_PARAMETER if invalid.
63 * @param x Output parameter for window x. Provide with a pointer to a k32u. Ignored if input is kNULL.
64 * @param y Output parameter for window y. Provide with a pointer to a k32u. Ignored if input is kNULL.
65 * @param width Output parameter for window width. Provide with a pointer to a k32u. Ignored if input is kNULL.
66 * @param height Output parameter for window height. Provide with a pointer to a k32u. Ignored if input is kNULL.
67 * @param xSubsampling Output parameter for window xSubsampling. Provide with a pointer to a k32u. Ignored if input is kNULL.
68 * @param ySubsampling Output parameter for window ySubsampling. Provide with a pointer to a k32u. Ignored if input is kNULL.
69 * @return Operation status.
70 */
71 GoFx(kStatus) GoGeoCal_CalWindow(GoGeoCal cal, kSize cameraIndex, k32u* x, k32u* y, k32u* width, k32u* height, k32u* xSubsampling, k32u* ySubsampling);
72
73 /**
74 * Gets X resolution to Z fit.
75 * The X and Y resolution (mm/pixel) of an imager's pixels varies with the range. When resampling images,
76 * it is necessary to know the native resolution of each pixel. Typically, this is only needed for color/texture output.
77 * Profile cameras would have a fit set to kNULL. The fit is stored as polynomial coefficients. The X resolution at a
78 * given Z range (mm) can be determined by:
79 *
80 * X resolution = coefficients[0] + coefficients[1]*Z + ... + coefficients[N]*Z^N
81 *
82 * @public @memberof GoGeoCal
83 * @version Introduced in firmware 4.7.0.130
84 * @param cal GoGeoCal object.
85 * @param cameraIndex Camera index.
86 * @return Array of X resolution to Z fit coefficients. Type: k64f. kNULL is returned if the
87 * camera does not have a X resolution to Z fit.
88 */
89 GoFx(kArray1) GoGeoCal_XResolutionFit(GoGeoCal cal, kSize cameraIndex);
90
91 /**
92 * Gets Y resolution to Z fit.
93 * The X and Y resolution (mm/pixel) of an imager's pixels varies with the range. When resampling images,
94 * it is necessary to know the native resolution of each pixel. Typically, this is only needed for color/texture output.
95 * Profile cameras would have a fit set to kNULL. The fit is stored as polynomial coefficients. The Y resolution at a
96 * given Z range (mm) can be determined by:
97 *
98 * Y resolution = coefficients[0] + coefficients[1]*Z + ... + coefficients[N]*Z^N
99 *
100 * @public @memberof GoGeoCal
101 * @version Introduced in firmware 4.7.0.130
102 * @param cal GoGeoCal object.
103 * @param cameraIndex Camera index.
104 * @return Array of Y resolution to Z fit coefficients. Type: k64f. kNULL is returned if the
105 * camera does not have a X resolution to Z fit.
106 */
107 GoFx(kArray1) GoGeoCal_YResolutionFit(GoGeoCal cal, kSize cameraIndex);
108
109 /**
110 * Gets X center to Z fit.
111 * The world X center (mm) of an imager varies with the range if any yaw is present. It also represents the distance
112 * from the sensor reference 0 plane (usually mid-sensor). The fit is stored as polynomial coefficients. The X center
113 * at a given Z range (mm) can be determined by:
114 *
115 * X center = coefficients[0] + coefficients[1]*Z + ... + coefficients[N]*Z^N
116 *
117 * @public @memberof GoGeoCal
118 * @version Introduced in firmware 4.7.0.130
119 * @param cal GoGeoCal object.
120 * @param cameraIndex Camera index.
121 * @return Array of X center to Z fit coefficients. Type: k64f.
122 */
123 GoFx(kArray1) GoGeoCal_XCenterFit(GoGeoCal cal, kSize cameraIndex);
124
125 /**
126 * Gets Y center to Z fit.
127 * The world Y center (mm) of an imager varies with the range if any pitch is present. It also represents the distance
128 * from the sensor reference 0 plane (usually mid-sensor). The fit is stored as polynomial coefficients. The Y center
129 * at a given Z range (mm) can be determined by:
130 *
131 * Y center = coefficients[0] + coefficients[1]*Z + ... + coefficients[N]*Z^N
132 *
133 * @public @memberof GoGeoCal
134 * @version Introduced in firmware 4.7.0.130
135 * @param cal GoGeoCal object.
136 * @param cameraIndex Camera index. kERROR_PARAMETER if invalid.
137 * @return Array of Y center to Z fit coefficients. Type: k64f.
138 */
139 GoFx(kArray1) GoGeoCal_YCenterFit(GoGeoCal cal, kSize cameraIndex);
140
141 /**
142 * Gets camera roll angle. This can be used to correct for camera roll.
143 *
144 * @public @memberof GoGeoCal
145 * @version Introduced in firmware 4.7.0.130
146 * @param cal GoGeoCal object.
147 * @param cameraIndex Camera index
148 * @return Roll angle (in radians)
149 */
150 GoFx(k64f) GoGeoCal_Roll(GoGeoCal cal, kSize cameraIndex);
151
152 /**
153 * Applies a new camera window to the camera orientation information and updates coefficients.
154 *
155 * @public @memberof GoGeoCal
156 * @version Introduced in firmware 5.2.18.3
157 * @param cal GoGeoCal object.
158 * @param x X of new camera window.
159 * @param y Y of new camera window.
160 * @param width Width of new camera window.
161 * @param height Height of new camera window.
162 * @param xSubsampling X subsampling of new camera window.
163 * @param ySubsampling Y subsampling of new camera window.
164 * @param cameraIndex Camera index.
165 * @return Operation status.
166 */
167 GoFx(kStatus) GoGeoCal_ApplyActiveArea(GoGeoCal cal, k32u x, k32u y, k32u width, k32u height, k32u xSubsampling, k32u ySubsampling, kSize cameraIndex);
168
169 kEndHeader()
170 #include <GoSdk/GoGeoCal.x.h>
171
172 #endif
k32u
GoGeoCal::GoGeoCal_Timestamp
const kChar * GoGeoCal_Timestamp(GoGeoCal cal)
Gets timestamp.
kArray1
GoGeoCal::GoGeoCal_ApplyActiveArea
kStatus GoGeoCal_ApplyActiveArea(GoGeoCal cal, k32u x, k32u y, k32u width, k32u height, k32u xSubsampling, k32u ySubsampling, kSize cameraIndex)
Applies a new camera window to the camera orientation information and updates coefficients.
GoGeoCal::GoGeoCal_CameraCount
kSize GoGeoCal_CameraCount(GoGeoCal cal)
Gets count of cameras.
GoGeoCal::GoGeoCal_YCenterFit
kArray1 GoGeoCal_YCenterFit(GoGeoCal cal, kSize cameraIndex)
Gets Y center to Z fit.
kSize
GoGeoCal::GoGeoCal_CalWindow
kStatus GoGeoCal_CalWindow(GoGeoCal cal, kSize cameraIndex, k32u *x, k32u *y, k32u *width, k32u *height, k32u *xSubsampling, k32u *ySubsampling)
Gets calibration window.
GoGeoCal::GoGeoCal_Id
k32u GoGeoCal_Id(GoGeoCal cal)
Gets sensor ID.
GoGeoCal::GoGeoCal_XCenterFit
kArray1 GoGeoCal_XCenterFit(GoGeoCal cal, kSize cameraIndex)
Gets X center to Z fit.
kChar
GoGeoCal::GoGeoCal_YResolutionFit
kArray1 GoGeoCal_YResolutionFit(GoGeoCal cal, kSize cameraIndex)
Gets Y resolution to Z fit.
GoSdkDef.h
Essential SDK declarations.
kObject
kStatus
k64f
GoGeoCal::GoGeoCal_Roll
k64f GoGeoCal_Roll(GoGeoCal cal, kSize cameraIndex)
Gets camera roll angle.
GoGeoCal
Contains the GeoCal data for a sensor. Do not read the GeoCal file directly, use this class to parse ...
GoGeoCal::GoGeoCal_XResolutionFit
kArray1 GoGeoCal_XResolutionFit(GoGeoCal cal, kSize cameraIndex)
Gets X resolution to Z fit.