Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>

  • DriveWorks SDK Reference
    5.20.37 Release
    For Test and Development only

    All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    Stereo.h
    Go to the documentation of this file.
    1
    2//
    3// Notice
    4// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
    5// NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
    6// THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
    7// MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
    8//
    9// NVIDIA CORPORATION & AFFILIATES assumes no responsibility for the consequences of use of such
    10// information or for any infringement of patents or other rights of third parties that may
    11// result from its use. No license is granted by implication or otherwise under any patent
    12// or patent rights of NVIDIA CORPORATION & AFFILIATES. No third party distribution is allowed unless
    13// expressly authorized by NVIDIA. Details are subject to change without notice.
    14// This code supersedes and replaces all information previously supplied.
    15// NVIDIA CORPORATION & AFFILIATES products are not authorized for use as critical
    16// components in life support devices or systems without express written approval of
    17// NVIDIA CORPORATION & AFFILIATES.
    18//
    19// SPDX-FileCopyrightText: Copyright (c) 2015-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
    20// SPDX-License-Identifier: LicenseRef-NvidiaProprietary
    21//
    22// NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
    23// property and proprietary rights in and to this material, related
    24// documentation and any modifications thereto. Any use, reproduction,
    25// disclosure or distribution of this material and related documentation
    26// without an express license agreement from NVIDIA CORPORATION or
    27// its affiliates is strictly prohibited.
    28//
    30
    39#ifndef DW_IMAGEPROCESSING_STEREO_STEREO_H_
    40#define DW_IMAGEPROCESSING_STEREO_STEREO_H_
    41
    42#include <dw/image/Image.h>
    43#include <dw/rig/Rig.h>
    46
    47#ifdef __cplusplus
    48extern "C" {
    49#endif
    50
    60// dwStereo
    61
    65typedef struct dwStereoObject* dwStereoHandle_t;
    66
    67#define DW_STEREO_SIDE_COUNT 2
    68#define MAX_ALLOWED_DISPARITY_RANGE 1024
    69
    73typedef enum {
    81
    85typedef enum {
    97
    101typedef struct
    102{
    104 uint32_t width;
    105
    107 uint32_t height;
    108
    111
    113 uint32_t levelCount;
    114
    116 uint32_t levelStop;
    117
    120
    123
    126
    129
    132
    135
    138
    141
    143
    158
    177dwStatus dwStereo_initialize(dwStereoHandle_t* obj, uint32_t width, uint32_t height,
    178 const dwStereoParams* stereoParams, dwContextHandle_t ctx);
    179
    197 const dwPyramidImage* rightPyramid, dwStereoHandle_t obj);
    198
    217
    236
    251
    266
    281
    296
    314
    330dwStatus dwStereo_getSize(uint32_t* dispWidth, uint32_t* dispHeight, uint32_t gLevel,
    331 dwStereoHandle_t obj);
    332
    348
    364
    380
    400
    402// dwStereoRectifier
    403
    407typedef struct dwStereoRectifierObject* dwStereoRectifierHandle_t;
    408
    412typedef enum {
    418
    439 dwCameraModelHandle_t cameraRight, dwTransformation3f leftToRig,
    440 dwTransformation3f rightToRig, dwContextHandle_t ctx);
    441
    456
    475dwStatus dwStereoRectifier_rectify(dwImageCUDA* outputImageLeft, dwImageCUDA* outputImageRight,
    476 const dwImageCUDA* inputImageLeft, const dwImageCUDA* inputImageRight,
    478
    495
    517
    535
    555
    556#ifdef __cplusplus
    557}
    558#endif
    559
    561#endif // DW_STEREO_STEREO_H_
    dwStatus
    Status definition.
    Definition: ErrorDefs.h:44
    Defines a 3x3 matrix of floating point numbers by using only one array.
    Definition: MatrixTypes.h:135
    NVIDIA DriveWorks API: Rectifier Methods
    NVIDIA DriveWorks API: Rig Configuration
    struct dwCameraModelObject * dwCameraModelHandle_t
    A pointer to the handle representing a calibrated camera model.
    Definition: CameraModel.h:67
    float float32_t
    Specifies POD types.
    Definition: BasicTypes.h:59
    struct dwContextObject * dwContextHandle_t
    Context handle.
    Definition: Context.h:85
    #define DW_API_PUBLIC
    Definition: Exports.h:56
    Defines a CUDA image.
    Definition: Image.h:526
    Pyramid image structure.
    Definition: Pyramid.h:65
    dwStereoSide side
    Side to compute the disparity map of.
    Definition: Stereo.h:119
    dwStereoCostType initType
    Specifies the cost type used for initialization.
    Definition: Stereo.h:140
    uint32_t occlusionThreshold
    Threshold for failing the L/R consistency test (in disparity value).
    Definition: Stereo.h:125
    bool occlusionTest
    Specifies whether to perform a L/R occlusion test.
    Definition: Stereo.h:122
    uint32_t height
    Input image height.
    Definition: Stereo.h:107
    uint32_t levelStop
    Level of the pyramid where disparity computation ends. It defines the resolution of the output dispar...
    Definition: Stereo.h:116
    uint32_t maxDisparityRange
    Maximal displacement when searching for corresponding pixels.
    Definition: Stereo.h:110
    uint32_t levelCount
    Number of levels in the pyramid. It must be the same or less than that of the Gaussian pyramid.
    Definition: Stereo.h:113
    float32_t invalidityThreshold
    Specifies threshold of invalidity.
    Definition: Stereo.h:131
    uint8_t refinementLevel
    Refinement level (0 no refinement, 1-3)
    Definition: Stereo.h:137
    bool occlusionFilling
    Specifies whether to fill occluded pixels for 100% density.
    Definition: Stereo.h:128
    uint32_t width
    Input image width (single image).
    Definition: Stereo.h:104
    bool holesFilling
    Specifies whether to fill invalid pixel using assumption on the scene in order to have a map with 100...
    Definition: Stereo.h:134
    DW_API_PUBLIC dwStatus dwStereo_getDisparity(const dwImageCUDA **disparityMap, dwStereoSide side, dwStereoHandle_t obj)
    Returns the disparity map for a specified side.
    DW_API_PUBLIC dwStatus dwStereo_getConfidence(const dwImageCUDA **confidenceMap, dwStereoSide side, dwStereoHandle_t obj)
    Returns the confidence map for a specified side.
    DW_API_PUBLIC dwStatus dwStereo_computeDisparity(const dwPyramidImage *leftPyramid, const dwPyramidImage *rightPyramid, dwStereoHandle_t obj)
    Computes the disparity map given the two rectified views.
    DW_API_PUBLIC dwStatus dwStereoRectifier_getProjectionMatrix(dwMatrix34f *projectionMat, dwStereoSide side, dwStereoRectifierHandle_t obj)
    Returns a 3x4 projection matrix for the side specified of the form: P_left = M_rect_left*[I|0] P_righ...
    DW_API_PUBLIC dwStatus dwStereo_initParams(dwStereoParams *stereoParams)
    Initializes the stereo parameters.
    DW_API_PUBLIC dwStatus dwStereo_setCUDAStream(cudaStream_t stream, dwStereoHandle_t obj)
    Sets CUDA stream used by the stereo algorithm.
    DW_API_PUBLIC dwStatus dwStereo_getSize(uint32_t *dispWidth, uint32_t *dispHeight, uint32_t gLevel, dwStereoHandle_t obj)
    Get size of image at a certain level.
    DW_API_PUBLIC dwStatus dwStereo_setInvalidThreshold(float32_t threshold, dwStereoHandle_t obj)
    Set invalidity threshold.
    DW_API_PUBLIC dwStatus dwStereo_release(dwStereoHandle_t obj)
    Releases the stereo algorithm.
    DW_API_PUBLIC dwStatus dwStereo_getCUDAStream(cudaStream_t *stream, dwStereoHandle_t obj)
    Gets CUDA stream used by the stereo algorithm.
    DW_API_PUBLIC dwStatus dwStereoRectifier_release(dwStereoRectifierHandle_t obj)
    Releases the stereo rectifier.
    dwStereoCostType
    Cost types for matching.
    Definition: Stereo.h:85
    dwStereoRectifierCrop
    Cropping.
    Definition: Stereo.h:412
    struct dwStereoRectifierObject * dwStereoRectifierHandle_t
    A pointer to the handle representing a stereo rectifier.
    Definition: Stereo.h:407
    DW_API_PUBLIC dwStatus dwStereo_initialize(dwStereoHandle_t *obj, uint32_t width, uint32_t height, const dwStereoParams *stereoParams, dwContextHandle_t ctx)
    Initializes the stereo algorithm with the parameters.
    DW_API_PUBLIC dwStatus dwStereoRectifier_getCropROI(dwBox2D *roi, dwStereoRectifierHandle_t obj)
    Returns a rectangle which is the roi where all valid pixels after undistortion and rectification are.
    DW_API_PUBLIC dwStatus dwStereo_setInfill(bool doInfill, dwStereoHandle_t obj)
    Set invalid infill on/off.
    dwStereoSide
    Side.
    Definition: Stereo.h:73
    struct dwStereoObject * dwStereoHandle_t
    A pointer to the handle representing a stereo algorithm.
    Definition: Stereo.h:65
    DW_API_PUBLIC dwStatus dwStereoRectifier_getRectificationMatrix(dwMatrix3f *rRectMat, dwStereoSide side, dwStereoRectifierHandle_t obj)
    Returns a 3x3 rotation matrix for the side specified.
    DW_API_PUBLIC dwStatus dwStereo_setOcclusionTest(bool doTest, dwStereoHandle_t obj)
    Set occlusion test on/off.
    DW_API_PUBLIC dwStatus dwStereo_reset(dwStereoHandle_t obj)
    Resets the Stereo module.
    DW_API_PUBLIC dwStatus dwStereoRectifier_getReprojectionMatrix(dwMatrix4f *qMatrix, dwStereoRectifierHandle_t obj)
    Returns a 4x4 reprojetion matrix of the form 1, 0, 0, -Cx Q = 0, 1, 0, -Cy 0, 0, 0,...
    DW_API_PUBLIC dwStatus dwStereoRectifier_initialize(dwStereoRectifierHandle_t *obj, dwCameraModelHandle_t cameraLeft, dwCameraModelHandle_t cameraRight, dwTransformation3f leftToRig, dwTransformation3f rightToRig, dwContextHandle_t ctx)
    Initializes the stereo rectifier.
    DW_API_PUBLIC dwStatus dwStereo_setOcclusionInfill(bool doInfill, dwStereoHandle_t obj)
    Set occlusion infill on/off.
    DW_API_PUBLIC dwStatus dwStereo_setRefinementLevel(uint8_t refinementLvl, dwStereoHandle_t obj)
    Sets the refinement level of the ongoing stereo algorithm.
    DW_API_PUBLIC dwStatus dwStereoRectifier_rectify(dwImageCUDA *outputImageLeft, dwImageCUDA *outputImageRight, const dwImageCUDA *inputImageLeft, const dwImageCUDA *inputImageRight, dwStereoRectifierHandle_t obj)
    Rectifies two images acquired by a stereo rig, epipolar lines will be parallel.
    @ DW_STEREO_COST_AD
    Absolute difference.
    Definition: Stereo.h:87
    @ DW_STEREO_COST_CENSUS
    Census transform.
    Definition: Stereo.h:93
    @ DW_STEREO_COST_NCC
    Normalised cross correlation.
    Definition: Stereo.h:89
    @ DW_STEREO_COST_ADCENSUS
    Absolute difference and census.
    Definition: Stereo.h:95
    @ DW_STEREO_COST_SAD
    Sum of absolute differences.
    Definition: Stereo.h:91
    @ DW_STEREO_RECTIFIER_CROP
    Crops to inner valid rectangle.
    Definition: Stereo.h:416
    @ DW_STEREO_RECTIFIER_UNCHANGED
    No scaling, keeps output of rectifier.
    Definition: Stereo.h:414
    @ DW_STEREO_SIDE_LEFT
    Left.
    Definition: Stereo.h:75
    @ DW_STEREO_SIDE_RIGHT
    Right.
    Definition: Stereo.h:77
    @ DW_STEREO_SIDE_BOTH
    Both sides.
    Definition: Stereo.h:79
    Configuration parameters for a Stereo algorithm.
    Definition: Stereo.h:102
    NVIDIA DriveWorks API: Image Conversion and Streaming Functionality
    NVIDIA DriveWorks API: Pyramid
    Defines a 3x4 matrix of floating point numbers (column major) by using only one array.
    Definition: MatrixTypes.h:156
    Defines a 4x4 matrix of floating point numbers (column major) by using only one array.
    Definition: MatrixTypes.h:149
    Defines a rectangle.
    Specifies a 3D rigid transformation.
    Definition: MatrixTypes.h:182
    人人超碰97caoporen国产