DriveWorks SDK Reference

| 0.6.67 Release

Camera.h
Go to the documentation of this file.
1 // This code contains NVIDIA Confidential Information and is disclosed
3 // under the Mutual Non-Disclosure Agreement.
4 //
5 // Notice
6 // ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
7 // NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
8 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
9 // MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
10 //
11 // NVIDIA Corporation assumes no responsibility for the consequences of use of such
12 // information or for any infringement of patents or other rights of third parties that may
13 // result from its use. No license is granted by implication or otherwise under any patent
14 // or patent rights of NVIDIA Corporation. No third party distribution is allowed unless
15 // expressly authorized by NVIDIA. Details are subject to change without notice.
16 // This code supersedes and replaces all information previously supplied.
17 // NVIDIA Corporation products are not authorized for use as critical
18 // components in life support devices or systems without express written approval of
19 // NVIDIA Corporation.
20 //
21 // Copyright (c) 2015-2016 NVIDIA Corporation. All rights reserved.
22 //
23 // NVIDIA Corporation and its licensors retain all intellectual property and proprietary
24 // rights in and to this software and related documentation and any modifications thereto.
25 // Any use, reproduction, disclosure or distribution of this software and related
26 // documentation without an express license agreement from NVIDIA Corporation is
27 // strictly prohibited.
28 //
30 
31 #ifndef DW_RIGCONFIGURATION_CAMERA_H__
32 #define DW_RIGCONFIGURATION_CAMERA_H__
33 
34 #include <dw/core/Config.h>
35 #include <dw/core/Context.h>
36 #include <dw/core/Exports.h>
37 #include <dw/core/Types.h>
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
59 // Calibrated cameras
61 
66 typedef struct dwCalibratedCameraObject *dwCalibratedCameraHandle_t;
67 
70 typedef struct dwCalibratedCameraObject const *dwConstCalibratedCameraHandle_t;
71 
82 dwStatus dwCalibratedCamera_initializePinhole(dwCalibratedCameraHandle_t *obj,
83  dwContextHandle_t context,
84  const dwPinholeCameraConfig *config);
85 
100 dwStatus dwCalibratedCamera_initializeOCam(dwCalibratedCameraHandle_t *obj,
101  dwContextHandle_t context,
102  const dwOCamCameraConfig *config);
103 
114 dwStatus dwCalibratedCamera_initializeFTheta(dwCalibratedCameraHandle_t *obj,
115  dwContextHandle_t context,
116  const dwFThetaCameraConfig *config);
117 
130 dwStatus dwCalibratedCamera_release(dwCalibratedCameraHandle_t *obj);
131 
148  dwCalibratedCameraHandle_t obj);
149 
165  dwConstCalibratedCameraHandle_t obj,
166  float32_t u, float32_t v);
167 
182  dwConstCalibratedCameraHandle_t obj,
183  float32_t x, float32_t y, float32_t z);
184 
195  dwConstCalibratedCameraHandle_t obj);
205 // dwCameraRig
207 
213 typedef struct dwCameraRigObject *dwCameraRigHandle_t;
214 
217 typedef struct dwCameraRigObject const *dwConstCameraRigHandle_t;
218 
220 #define DW_MAX_RIG_CAMERA_COUNT 255
221 
232 dwStatus dwCameraRig_initialize(dwCameraRigHandle_t *obj, dwContextHandle_t context,
233  const uint32_t cameraCount);
234 
250 dwStatus dwCameraRig_initializeFromConfig(dwCameraRigHandle_t *obj,
251  uint32_t *cameraCount,
252  dwCalibratedCameraHandle_t *cameras,
253  uint32_t maxCamerasCount,
254  dwContextHandle_t context,
255  dwRigConfigurationHandle_t rigConfig);
256 
266 dwStatus dwCameraRig_reset(dwCameraRigHandle_t obj);
267 
281 dwStatus dwCameraRig_release(dwCameraRigHandle_t *obj);
282 
293 dwStatus dwCameraRig_setCamera(dwCameraRigHandle_t obj,
294  uint32_t index,
295  dwCalibratedCameraHandle_t camera);
296 
308 dwStatus dwCameraRig_setCam2Rig(dwCameraRigHandle_t obj,
309  uint32_t index,
310  const dwTransformation *cam2Rig);
311 
322 dwStatus dwCameraRig_getCam2Rig(dwTransformation *cam2Rig,
323  uint32_t index,
324  dwCameraRigHandle_t obj);
325 
328 #ifdef __cplusplus
329 }
330 #endif
331 
332 #endif // DW_RIGCONFIGURATION_MODELS_H__
DW_API_PUBLIC dwStatus dwCalibratedCamera_ray2Pixel(float32_t *u, float32_t *v, dwConstCalibratedCameraHandle_t obj, float32_t x, float32_t y, float32_t z)
Projects a 3D point in pixel coordinates to a 2D pixel position.
NVIDIA DriveWorks API: Rig Configuration
NVIDIA DriveWorks API: Core Types
float float32_t
Specifies POD types.
Definition: Types.h:77
struct dwCalibratedCameraObject const * dwConstCalibratedCameraHandle_t
A pointer to the handle representing a const calibrated camera.
Definition: Camera.h:70
DW_API_PUBLIC dwStatus dwCameraRig_initializeFromConfig(dwCameraRigHandle_t *obj, uint32_t *cameraCount, dwCalibratedCameraHandle_t *cameras, uint32_t maxCamerasCount, dwContextHandle_t context, dwRigConfigurationHandle_t rigConfig)
Creates and initializes a camera rig from a rig configuration and initializes all the necessary camer...
DW_API_PUBLIC dwStatus dwCameraRig_release(dwCameraRigHandle_t *obj)
Releases the camera rig object.
struct dwCameraRigObject * dwCameraRigHandle_t
Handle representing a camera rig object.
Definition: Camera.h:213
Configuration parameters for a calibrated FTheta camera.
DW_API_PUBLIC dwStatus dwCalibratedCamera_getInversePolynomial(float32_t *invPoly, size_t *size, dwCalibratedCameraHandle_t obj)
Returns the inverse polynomial used for the inverse distortion model.
DW_API_PUBLIC dwStatus dwCalibratedCamera_initializePinhole(dwCalibratedCameraHandle_t *obj, dwContextHandle_t context, const dwPinholeCameraConfig *config)
Creates and initializes a calibrated pinhole camera.
struct dwRigConfigurationObject * dwRigConfigurationHandle_t
Handle representing the Sensor Abstraction Layer interface.
NVIDIA DriveWorks API: Core Methods
DW_API_PUBLIC dwStatus dwCalibratedCamera_initializeFTheta(dwCalibratedCameraHandle_t *obj, dwContextHandle_t context, const dwFThetaCameraConfig *config)
Creates and initializes a calibrated camera for the F-Theta distortion model.
NVIDIA DriveWorks API: Core Exports
DW_API_PUBLIC dwStatus dwCalibratedCamera_release(dwCalibratedCameraHandle_t *obj)
Releases the calibrated camera.
dwStatus
Status definition.
Definition: Status.h:167
Configuration parameters for a calibrated OCam sphere camera.
DW_API_PUBLIC dwStatus dwCalibratedCamera_pixel2Ray(float32_t *x, float32_t *y, float32_t *z, dwConstCalibratedCameraHandle_t obj, float32_t u, float32_t v)
Back-projects a 2D point in pixel coordinates to a 3D optical ray direction.
struct dwCalibratedCameraObject * dwCalibratedCameraHandle_t
A pointer to the handle representing a calibrated camera.
Definition: Camera.h:66
DW_API_PUBLIC dwStatus dwCameraRig_reset(dwCameraRigHandle_t obj)
Resets a camera rig.
DW_API_PUBLIC dwStatus dwCameraRig_initialize(dwCameraRigHandle_t *obj, dwContextHandle_t context, const uint32_t cameraCount)
Creates and initializes a camera rig.
DW_API_PUBLIC dwStatus dwCalibratedCamera_getHorizontalFOV(float32_t *hfov, dwConstCalibratedCameraHandle_t obj)
Gets the horizontal Field of View (FOV) of the calibrated camera, in radians.
DW_API_PUBLIC dwStatus dwCameraRig_setCam2Rig(dwCameraRigHandle_t obj, uint32_t index, const dwTransformation *cam2Rig)
Sets the relative pose for a camera in a rig.
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:78
DW_API_PUBLIC dwStatus dwCameraRig_setCamera(dwCameraRigHandle_t obj, uint32_t index, dwCalibratedCameraHandle_t camera)
Sets the camera model for a camera in a rig.
Configuration parameters for a calibrated pinhole camera.
DW_API_PUBLIC dwStatus dwCameraRig_getCam2Rig(dwTransformation *cam2Rig, uint32_t index, dwCameraRigHandle_t obj)
Gets the relative pose for a camera in a rig.
struct dwCameraRigObject const * dwConstCameraRigHandle_t
Handle representing a const camera rig object.
Definition: Camera.h:217
#define DW_API_PUBLIC
Definition: Exports.h:76
DW_API_PUBLIC dwStatus dwCalibratedCamera_initializeOCam(dwCalibratedCameraHandle_t *obj, dwContextHandle_t context, const dwOCamCameraConfig *config)
Creates and initializes a calibrated omnidirectional camera.