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

  • DriveWorks SDK Reference
    5.8.83 Release
    For Test and Development only

    All Data Structures 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-2021 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
    154
    169dwStatus dwStereo_initialize(dwStereoHandle_t* obj, uint32_t width, uint32_t height,
    170 const dwStereoParams* stereoParams, dwContextHandle_t ctx);
    171
    185 const dwPyramidImage* rightPyramid, dwStereoHandle_t obj);
    186
    201
    216
    227
    238
    249
    260
    274
    286dwStatus dwStereo_getSize(uint32_t* dispWidth, uint32_t* dispHeight, uint32_t gLevel,
    287 dwStereoHandle_t obj);
    288
    300
    312
    324
    340
    342// dwStereoRectifier
    343
    347typedef struct dwStereoRectifierObject* dwStereoRectifierHandle_t;
    348
    352typedef enum {
    358
    375 dwCameraModelHandle_t cameraRight, dwTransformation3f leftToRig,
    376 dwTransformation3f rightToRig, dwContextHandle_t ctx);
    377
    388
    403dwStatus dwStereoRectifier_rectify(dwImageCUDA* outputImageLeft, dwImageCUDA* outputImageRight,
    404 const dwImageCUDA* inputImageLeft, const dwImageCUDA* inputImageRight,
    406
    419
    437
    451
    467
    468#ifdef __cplusplus
    469}
    470#endif
    471
    473#endif // DW_STEREO_STEREO_H_
    NVIDIA DriveWorks API: Pyramid
    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
    struct dwContextObject * dwContextHandle_t
    Context handle.
    Definition: Context.h:82
    #define DW_API_PUBLIC
    Definition: Exports.h:54
    dwStatus
    Status definition.
    Definition: Status.h:171
    float float32_t
    Specifies POD types.
    Definition: Types.h:70
    Defines a 3x4 matrix of floating point numbers (column major) by using only one array.
    Definition: Types.h:287
    Defines a 3x3 matrix of floating point numbers by using only one array.
    Definition: Types.h:261
    Defines a 4x4 matrix of floating point numbers (column major) by using only one array.
    Definition: Types.h:295
    Defines a rectangle.
    Definition: Types.h:203
    Specifies a 3D rigid transformation.
    Definition: Types.h:536
    Defines a CUDA image.
    Definition: Image.h:427
    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:352
    struct dwStereoRectifierObject * dwStereoRectifierHandle_t
    A pointer to the handle representing a stereo rectifier.
    Definition: Stereo.h:347
    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:356
    @ DW_STEREO_RECTIFIER_UNCHANGED
    No scaling, keeps output of rectifier.
    Definition: Stereo.h:354
    @ 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
    人人超碰97caoporen国产