Bilateral Filter

group NVCV_C_ALGORITHM_BILATERAL_FILTER

Functions

NVCVStatus cvcudaBilateralFilterCreate(NVCVOperatorHandle *handle)

Constructs and an instance of the Bilateral Filter operator.

Parameters:

handle[out] Where the image instance handle will be written to.

  • Must not be NULL.

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null.

  • NVCV_ERROR_OUT_OF_MEMORY – Not enough memory to create the operator.

  • NVCV_SUCCESS – Operation executed successfully.

NVCVStatus cvcudaBilateralFilterSubmit(NVCVOperatorHandle handle, cudaStream_t stream, NVCVTensorHandle in, NVCVTensorHandle out, int diameter, float sigmaColor, float sigmaSpace, NVCVBorderType borderMode)

Executes the BilateralFilter operation on the given cuda stream. This operation does not wait for completion.

Limitations:

Destination must be same format and size as source

Input: Data Layout: [kNHWC, kHWC] Channels: [1, 3, 4]

Data Type

Allowed

8bit Unsigned

Yes

8bit Signed

Yes

16bit Unsigned

Yes

16bit Signed

Yes

32bit Unsigned

Yes

32bit Signed

Yes

32bit Float

Yes

64bit Float

Yes

Output: Data Layout: [kNHWC, kHWC] Channels: [1, 3, 4]

Data Type

Allowed

8bit Unsigned

Yes

8bit Signed

Yes

16bit Unsigned

Yes

16bit Signed

Yes

32bit Unsigned

Yes

32bit Signed

Yes

32bit Float

Yes

64bit Float

Yes

Input/Output dependency

 Property      |  Input == Output
-------------- | -------------
 Data Layout   | Yes
 Data Type     | Yes
 Number        | Yes
 Channels      | Yes
 Width         | Yes
 Height        | Yes

Parameters:
  • handle[in] Handle to the operator.

    • Must not be NULL.

  • stream[in] Handle to a valid CUDA stream.

  • in[in] input tensor.

  • out[out] output tensor.

  • diameter[in] bilateral filter diameter.

  • sigmaColor[in] Gaussian exponent for color difference

  • sigmaSpace[in] Gaussian exponent for position difference

  • borderMode[in] texture border mode for input tensor

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Some parameter is outside valid range.

  • NVCV_ERROR_INTERNAL – Internal error in the operator, invalid types passed in.

  • NVCV_SUCCESS – Operation executed successfully.

NVCVStatus cvcudaBilateralFilterVarShapeSubmit(NVCVOperatorHandle handle, cudaStream_t stream, NVCVImageBatchHandle in, NVCVImageBatchHandle out, NVCVTensorHandle diameterData, NVCVTensorHandle sigmaColorData, NVCVTensorHandle sigmaSpaceData, NVCVBorderType borderMode)