20 #include <cuda_runtime_api.h>
21 #include <NVX/nvx_api_macros.h>
31 typedef enum _nvxcu_error_status_e {
44 typedef enum _nvxcu_array_item_type_e {
73 #define NVXCU_DF_IMAGE(a, b, c, d) ((a) | (b << 8) | (c << 16) | (d << 24))
80 #define NVXCU_ENUM_BASE(v, id) (((v) << 20) | (id << 12))
87 typedef enum _nvxcu_enum_e {
104 typedef enum _nvxcu_convert_policy_e {
116 typedef enum _nvxcu_df_image_e {
208 typedef enum _nvxcu_channel_e {
239 typedef enum _nvxcu_interpolation_type_e {
253 typedef enum _nvxcu_color_space_e {
271 typedef enum _nvxcu_channel_range_e {
283 typedef enum _nvxcu_border_mode_e {
297 typedef enum _nvxcu_termination_criteria_e {
311 typedef enum _nvxcu_norm_type_e {
323 typedef enum _nvxcu_round_policy_e {
335 typedef enum _nvxcu_flip_mode_e {
346 typedef enum _nvxcu_scanline_e {
371 typedef enum _nvxcu_sgm_flags_e {
379 #define NVXCU_SCALE_PYRAMID_HALF (0.5f)
385 #define NVXCU_SCALE_PYRAMID_ORB (0.8408964f)
392 typedef union _nvxcu_pixel_value_t {
405 uint8_t reserved[16];
413 typedef struct _nvxcu_border_t {
422 typedef struct _nvxcu_keypoint_t {
436 typedef struct _nvxcu_keypointf_t {
450 typedef struct _nvxcu_rectangle_t {
461 typedef struct _nvxcu_coordinates2d_t {
470 typedef struct _nvxcu_coordinates3d_t {
480 typedef struct _nvxcu_point2f_t {
489 typedef struct _nvxcu_point3f_t {
499 typedef struct _nvxcu_point4f_t {
522 typedef struct _nvxcu_tmp_buf_size_t {
537 typedef struct _nvxcu_tmp_buf_t {
550 #define NVXCU_NB_MAX_PLANES (4u)
556 typedef enum _nvxcu_image_type_e {
567 typedef struct _nvxcu_image_t {
580 typedef struct _nvxcu_pitch_linear_image_t {
584 int32_t pitch_in_bytes;
593 typedef struct _nvxcu_uniform_image_t {
606 typedef enum _nvxcu_array_type_e {
615 typedef struct _nvxcu_array_t {
626 typedef struct _nvxcu_plain_array_t {
640 typedef enum _nvxcu_pyramid_type_e {
649 typedef struct _nvxcu_pyramid_t {
660 typedef struct _nvxcu_pitch_linear_pyramid_t {
673 typedef enum _nvxcu_exec_target_type_e {
682 typedef struct _nvxcu_exec_target_t {
691 typedef struct _nvxcu_stream_exec_target_t {
694 struct cudaDeviceProp dev_prop;
1291 const uint8_t* lut_dev_ptr,
1576 uint32_t window_size,
1577 const struct cudaDeviceProp* prop);
1601 uint32_t *distribution_dev_ptr,
1605 uint32_t window_size,
1628 const struct cudaDeviceProp* prop);
1710 const float *matrix_dev_ptr,
1742 const float *matrix_dev_ptr,
1800 const struct cudaDeviceProp* prop);
1821 float *mean_dev_ptr,
1822 float *stddev_dev_ptr,
1845 const struct cudaDeviceProp* prop);
1877 void *min_val_dev_ptr,
1878 void *max_val_dev_ptr,
1881 uint32_t *min_count_dev_ptr,
1882 uint32_t *max_count_dev_ptr,
1915 int32_t kernel_width, int32_t kernel_height,
1918 const struct cudaDeviceProp* prop);
1953 const int16_t *kernel_dev_ptr,
1954 uint32_t kernel_div,
1955 int32_t kernel_width, int32_t kernel_height,
1987 int32_t kernel_size,
2011 uint32_t num_levels,
2014 const struct cudaDeviceProp* prop);
2060 int32_t gradient_size,
2061 const struct cudaDeviceProp* prop);
2088 int32_t lower_thresh, int32_t upper_thresh,
2089 int32_t gradient_size,
2123 int32_t gradient_size,
2127 const struct cudaDeviceProp* prop);
2161 float strength_thresh,
2164 int32_t gradient_size,
2167 uint32_t *num_corners_dev_ptr,
2195 int32_t nonmax_suppression,
2198 const struct cudaDeviceProp* prop);
2227 float strength_thresh,
2228 int32_t nonmax_suppression,
2230 uint32_t *num_corners_dev_ptr,
2260 uint32_t window_dimension,
2263 const struct cudaDeviceProp* prop);
2305 uint32_t num_iterations,
2306 uint32_t window_dimension,
2362 const struct cudaDeviceProp* prop);
2398 float k,
float threshold, uint32_t cell_size,
2399 size_t *num_corners_dev_ptr,
2426 const struct cudaDeviceProp* prop);
2465 uint32_t type, uint32_t threshold, uint32_t cell_size,
2466 size_t *num_corners_dev_ptr,
2572 int32_t search_window_width, int32_t search_window_height,
2574 int32_t mv_div_factor,
2596 int32_t search_window_width, int32_t search_window_height,
2597 const struct cudaDeviceProp* prop);
2640 int32_t search_window_width, int32_t search_window_height,
2641 int32_t num_iterations,
2642 float smoothness_factor,
2643 int32_t mv_div_factor,
2689 float smoothness_factor,
2690 int32_t mv_div_factor,
2714 uint32_t max_disparity,
2715 const struct cudaDeviceProp* prop);
2748 uint32_t max_disparity,
2775 int32_t minD, int32_t maxD,
2777 const struct cudaDeviceProp* prop);
2852 uint32_t arr_capacity,
2853 float rho,
float theta,
2854 const struct cudaDeviceProp* prop);
2885 float rho,
float theta, uint32_t threshold,
2886 uint32_t *num_lines_dev_ptr,
2913 uint32_t arr_capacity,
2914 float rho,
float theta,
2915 uint32_t min_line_length, uint32_t max_line_gap,
2916 const struct cudaDeviceProp* prop);
2949 float rho,
float theta, uint32_t threshold,
2950 uint32_t min_line_length, uint32_t max_line_gap,
2951 uint32_t *num_segments_dev_ptr,
2978 uint32_t arr_capacity,
2979 float dp,
float min_dist,
2980 uint32_t min_radius, uint32_t max_radius,
2981 const struct cudaDeviceProp* prop);
3033 uint32_t *num_detections_dev_ptr,
3036 uint32_t min_radius, uint32_t max_radius,
3037 uint32_t acc_threshold,
nvxcu_error_status_e nvxcuAdd(const nvxcu_image_t *in1, const nvxcu_image_t *in2, nvxcu_convert_policy_e policy, const nvxcu_image_t *out, const nvxcu_exec_target_t *exec_target)
Performs addition between two images.
A single 32-bit pixel plane of 4 interleaved 8-bit RGBX units.
A single plane of 32-bit unsigned integer data.
Used to extract the Cr/V/Value channel.
Defines a pointers to temporary buffers.
nvxcu_pyramid_type_e
Defines the pyramid object type ID.
nvxcu_tmp_buf_size_t nvxcuRefineMotionField_GetBufSize(uint32_t mv_width, uint32_t mv_height, int32_t search_window_width, int32_t search_window_height, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuRefineMotionField p...
size_t host_buf_size
The size of HOST temporary buffer.
nvxcu_error_status_e nvxcuChannelExtract(const nvxcu_image_t *input, nvxcu_channel_e channel, const nvxcu_image_t *output, const nvxcu_exec_target_t *exec_target)
Extracts single channel from multi-channel image.
nvxcu_error_status_e nvxcuFastTrack(const nvxcu_image_t *input, const nvxcu_array_t *output, const nvxcu_image_t *mask, const nvxcu_array_t *tracked_points, uint32_t type, uint32_t threshold, uint32_t cell_size, size_t *num_corners_dev_ptr, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Detects and tracks corners using the FAST algorithm.
Array object represented as plain CUDA device memory.
nvxcu_tmp_buf_size_t nvxcuHoughCircles_GetBufSize(uint32_t width, uint32_t height, nvxcu_df_image_e format, uint32_t arr_capacity, float dp, float min_dist, uint32_t min_radius, uint32_t max_radius, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuHoughCircles primit...
nvxcu_error_status_e nvxcuDilate3x3(const nvxcu_image_t *input, const nvxcu_image_t *output, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Performs dilation operation on an input image.
nvxcu_tmp_buf_size_t nvxcuOpticalFlowPyrLK_GetBufSize(uint32_t width, uint32_t height, uint32_t levels, float scale, nvxcu_array_item_type_e arr_type, uint32_t capacity, uint32_t window_dimension, int32_t calcError, const nvxcu_border_t *border, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuOpticalFlowPyrLK pr...
nvxcu_tmp_buf_size_t nvxcuMinMaxLoc_GetBufSize(uint32_t input_width, uint32_t input_height, nvxcu_df_image_e input_format, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuMinMaxLoc primitive...
nvxcu_tmp_buf_size_t nvxcuHarrisTrack_GetBufSize(uint32_t width, uint32_t height, nvxcu_df_image_e format, nvxcu_array_item_type_e arr_type, uint32_t arr_capacity, uint32_t cell_size, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuHarrisTrack primiti...
nvxcu_error_status_e nvxcuPhase(const nvxcu_image_t *grad_x, const nvxcu_image_t *grad_y, const nvxcu_image_t *orientation, const nvxcu_exec_target_t *exec_target)
Computes the gradient phase.
nvxcu_tmp_buf_size_t nvxcuCannyEdgeDetector_GetBufSize(uint32_t width, uint32_t height, nvxcu_df_image_e format, int32_t gradient_size, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuCannyEdgeDetector p...
uint32_t z
The Z coordinate.
Base structure for pyramid object.
Aggregate cost from four directions forming a cross.
nvxcu_error_status_e nvxcuHalfScaleGaussian(const nvxcu_image_t *input, const nvxcu_image_t *output, int32_t kernel_size, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Performs a Gaussian Blur on an image then half-scales it.
A single 48-bit pixel plane of 3 interleaved 16-bit RGB units.
Defines a 2D coordinates data structure.
nvxcu_error_status_e nvxcuHoughCircles(const nvxcu_image_t *edges, const nvxcu_image_t *dx, const nvxcu_image_t *dy, const nvxcu_array_t *circles, uint32_t *num_detections_dev_ptr, float dp, float min_dist, uint32_t min_radius, uint32_t max_radius, uint32_t acc_threshold, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Detects circles in a binary image.
A single plane of float32_t[2] data (for example, motion fields).
nvxcu_error_status_e
Defines an error status code.
nvxcu_error_status_e nvxcuFastCorners(const nvxcu_image_t *input, float strength_thresh, int32_t nonmax_suppression, const nvxcu_array_t *corners, uint32_t *num_corners_dev_ptr, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Computes the corners in an image using a method based upon FAST9 algorithm.
nvxcu_df_image_e
Defines an image format enumeration.
Used to extract the GREEN channel.
nvxcu_pitch_linear_image_t * levels
The pyramid levels.
nvxcu_plain_array_t object.
Base structure for image object.
The BT.601 coefficients and SMPTE C primaries.
nvxcu_pixel_value_t uniform_value
Uniform value.
Truncates the least significant values.
nvxcu_error_status_e nvxcuOpticalFlowPyrLK(const nvxcu_pyramid_t *old_images, const nvxcu_pyramid_t *new_images, const nvxcu_array_t *old_points, const nvxcu_array_t *new_points, nvxcu_termination_criteria_e termination, float epsilon, uint32_t num_iterations, uint32_t window_dimension, int32_t calcError, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Computes the optical flow between two pyramid images using the Lucas-Kanade method.
void * dev_ptr
CUDA device pointer to the items.
nvxcu_image_t base
Base image structure.
nvxcu_norm_type_e
Defines a normalization type enumeration.
nvxcu_tmp_buf_size_t nvxcuStereoBlockMatching_GetBufSize(uint32_t width, uint32_t height, nvxcu_df_image_e format, uint32_t win_size, uint32_t max_disparity, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuStereoBlockMatching...
A single plane of 8-bit unsigned integer data.
A single plane of 32-bit signed integer data.
nvxcu_error_status_e nvxcuGaussianPyramid(const nvxcu_pyramid_t *pyr, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Computes a Gaussian image pyramid from its first level.
Aggregate cost from left to right horizontally.
Defines a 4D point data structure (float coordinates).
Defines the value of a pixel for any image format.
Termination by matching the value against epsilon.
nvxcu_array_item_type_e item_type
Array items type.
nvxcu_error_status_e nvxcuAccumulateSquare(const nvxcu_image_t *input, uint32_t shift, const nvxcu_image_t *accum, const nvxcu_exec_target_t *exec_target)
Accumulates a squared value from an input image to an output image.
The BT.601 coefficients and BTU primaries.
Used to extract the RED channel.
nvxcu_error_status_e nvxcuConvolve(const nvxcu_image_t *input, const int16_t *kernel_dev_ptr, uint32_t kernel_div, int32_t kernel_width, int32_t kernel_height, const nvxcu_image_t *output, const nvxcu_border_t *border, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Convolves the input with the client supplied convolution matrix.
float orientation
The orientation of the keypoint.
nvxcu_channel_e
Defines a channel enumeration for channel extract operation.
Defines a keypoint data structure with float coordinates.
Aggregate cost from right to left diagonally starting from the bottom.
uint32_t U32
NVXCU_DF_IMAGE_U32.
nvxcu_pitch_linear_image_t object.
Defines a rectangle data structure.
cudaStream_t stream
CUDA stream to launch primitive in.
nvxcu_error_status_e nvxcuAccumulateWeighted(const nvxcu_image_t *input, float alpha, const nvxcu_image_t *accum, const nvxcu_exec_target_t *exec_target)
Accumulates a weighted value from an input image to an output image.
uint32_t end_y
The End Y coordinate.
nvxcu_error_status_e nvxcuSobel3x3(const nvxcu_image_t *input, const nvxcu_image_t *output_x, const nvxcu_image_t *output_y, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Calculates derivatives from an input image using 3x3 Sobel operator.
nvxcu_error_status_e nvxcuHarrisTrack(const nvxcu_image_t *input, const nvxcu_array_t *output, const nvxcu_image_t *mask, const nvxcu_array_t *tracked_points, float k, float threshold, uint32_t cell_size, size_t *num_corners_dev_ptr, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Detects and tracks Harris corners for the input image.
Defines a 2D point data structure (float coordinates).
Defines a border extrapolation behavior.
nvxcu_pyramid_t base
Base pyramid structure.
nvxcu_error_status_e nvxcuBitwiseAnd(const nvxcu_image_t *in1, const nvxcu_image_t *in2, const nvxcu_image_t *out, const nvxcu_exec_target_t *exec_target)
Performs a bitwise AND operation between two images.
nvxcu_df_image_e format
Image format.
int32_t tracking_status
The tracking status of the keypoint.
Used to extract the BLUE channel.
Default color space (BT.709).
nvxcu_error_status_e nvxcuMagnitude(const nvxcu_image_t *grad_x, const nvxcu_image_t *grad_y, const nvxcu_image_t *mag, const nvxcu_exec_target_t *exec_target)
Computes the gradient magnitude.
nvxcu_error_status_e nvxcuThresholdRange(const nvxcu_image_t *input, nvxcu_pixel_value_t thresh_lower_value, nvxcu_pixel_value_t thresh_upper_value, nvxcu_pixel_value_t true_value, nvxcu_pixel_value_t false_value, const nvxcu_image_t *output, const nvxcu_exec_target_t *exec_target)
Thresholds an input image and produces a boolean output image.
nvxcu_pixel_value_t constant_value
Border constant value for NVXCU_BORDER_MODE_CONSTANT mode.
Nearest neighbor interpolation.
void * dev_ptr
CUDA Device memory buffer.
float strength
The strength of the keypoint.
Used to extract the channel #2.
nvxcu_tmp_buf_size_t nvxcuGaussianPyramid_GetBufSize(uint32_t width, uint32_t height, uint32_t num_levels, float scale, const nvxcu_border_t *border, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuGaussianPyramid pri...
uint32_t * num_items_dev_ptr
CUDA device pointer to the number of items.
Used to extract the ALPHA channel.
Horizontal flipping of the image.
nvxcu_enum_e
Defines an enumeration type code.
nvxcu_tmp_buf_size_t nvxcuHoughSegments_GetBufSize(uint32_t width, uint32_t height, nvxcu_df_image_e format, uint32_t arr_capacity, float rho, float theta, uint32_t min_line_length, uint32_t max_line_gap, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuHoughSegments primi...
nvxcu_tmp_buf_size_t nvxcuSemiGlobalMatching_GetBufSize(uint32_t width, uint32_t height, nvxcu_df_image_e format, int32_t minD, int32_t maxD, int32_t sad, nvxcu_sgm_flags_e flags, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuSemiGlobalMatching ...
nvxcu_pitch_linear_pyramid_t object.
nvxcu_image_type_e image_type
Object type ID.
nvxcu_image_t base
Base image structure.
nvxcu_stream_exec_target_t object.
uint32_t start_x
The Start X coordinate.
nvxcu_tmp_buf_size_t nvxcuHoughLines_GetBufSize(uint32_t width, uint32_t height, nvxcu_df_image_e format, uint32_t arr_capacity, float rho, float theta, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuHoughLines primitiv...
int32_t S32
NVXCU_DF_IMAGE_S32.
nvxcu_error_status_e nvxcuScaleImage(const nvxcu_image_t *src, const nvxcu_image_t *dst, nvxcu_interpolation_type_e type, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Resizes an input image from source to the destination dimensions.
nvxcu_error_status_e nvxcuHarrisCorners(const nvxcu_image_t *input, float strength_thresh, float min_distance, float sensitivity, int32_t gradient_size, int32_t block_size, const nvxcu_array_t *corners, uint32_t *num_corners_dev_ptr, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Computes the Harris Corners of an image.
float scale
The scale of the keypoint.
nvxcu_error_status_e nvxcuCannyEdgeDetector(const nvxcu_image_t *input, int32_t lower_thresh, int32_t upper_thresh, int32_t gradient_size, nvxcu_norm_type_e norm_type, const nvxcu_image_t *output, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Applies Canny edge detector algorithm to the input image.
nvxcu_error_status_e nvxcuWarpPerspective(const nvxcu_image_t *input, const float *matrix_dev_ptr, nvxcu_interpolation_type_e type, const nvxcu_image_t *output, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Performs an perspective transform on an image.
nvxcu_error_status_e nvxcuConvertDepth(const nvxcu_image_t *input, const nvxcu_image_t *output, nvxcu_convert_policy_e policy, int32_t shift, const nvxcu_exec_target_t *exec_target)
Converts image bit depth.
uint8_t U8
NVXCU_DF_IMAGE_U8.
nvxcu_exec_target_type_e exec_target_type
Object type ID.
nvxcu_convert_policy_e
Defines a convertion policy enumeration.
void * host_ptr
HOST memory buffer.
uint32_t width
Image width.
nvxcu_error_status_e nvxcuHoughSegments(const nvxcu_image_t *input, const nvxcu_array_t *output, float rho, float theta, uint32_t threshold, uint32_t min_line_length, uint32_t max_line_gap, uint32_t *num_segments_dev_ptr, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Finds line segments in a binary image using the probabilistic Hough transform.
nvxcu_error_status_e nvxcuScharr3x3(const nvxcu_image_t *input, const nvxcu_image_t *output_x, const nvxcu_image_t *output_y, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Calculates derivatives from an input image using 3x3 Scharr operator.
nvxcu_border_mode_e
Defines a border mode enumeration.
nvxcu_array_type_e
Defines the array object type ID.
Indicates a generic error code.
uint32_t x
The X coordinate.
nvxcu_error_status_e nvxcuCreateMotionField(const nvxcu_image_t *ref_image, const nvxcu_image_t *cur_image, const nvxcu_image_t *anchor, const nvxcu_image_t *bias, const nvxcu_image_t *best_mv0, const nvxcu_image_t *best_mv1, const nvxcu_image_t *sad_table, int32_t block_size, int32_t search_window_width, int32_t search_window_height, float bias_weight, int32_t mv_div_factor, const nvxcu_exec_target_t *exec_target)
Creates initial motion field from a current image into reference image.
nvxcu_image_type_e
Defines the image object type ID.
nvxcu_error_status_e nvxcuAbsDiff(const nvxcu_image_t *in1, const nvxcu_image_t *in2, const nvxcu_image_t *out, const nvxcu_exec_target_t *exec_target)
Computes the absolute difference between two images.
nvxcu_exec_target_type_e
Defines the execution target object type ID.
Used to extract the channel #0.
float strength
The strength of the keypoint.
Base structure for array object.
A 2-lane YUV format of Luma (Y) and interleaved VU data at 4:2:0 sampling.
Termination by the number of iterations.
Pitch linear pyramid object.
A nvxcu_termination_criteria_e.
Image object represented as pitch linear CUDA buffer.
nvxcu_sgm_flags_e
Defines extra flags for SGM algorithm.
nvxcu_error_status_e nvxcuMeanStdDev(const nvxcu_image_t *input, float *mean_dev_ptr, float *stddev_dev_ptr, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Computes the mean pixel value and the standard deviation of the pixels in the input image...
Restricted range of the unit of the channel based on the space given.
#define NVXCU_ENUM_BASE(v, id)
Calculates the base value for a specific enumeration type.
Indicates internal CUDA failure.
nvxcu_error_status_e nvxcuThresholdBinary(const nvxcu_image_t *input, nvxcu_pixel_value_t thresh_value, nvxcu_pixel_value_t true_value, nvxcu_pixel_value_t false_value, const nvxcu_image_t *output, const nvxcu_exec_target_t *exec_target)
Thresholds an input image and produces a boolean output image.
filter cost at top image area with low gradients.
Defines a 3D coordinates data structure.
nvxcu_error_status_e nvxcuLaplacian3x3(const nvxcu_image_t *input, const nvxcu_image_t *output, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Applies a 3x3 Laplacian operator to the input image.
Rounds to nearest even output value.
nvxcu_error_status_e nvxcuIntegralImage(const nvxcu_image_t *input, const nvxcu_image_t *output, const nvxcu_exec_target_t *exec_target)
Computes the integral image of the input.
nvxcu_termination_criteria_e
Defines a termination criteria enumeration.
size_t dev_buf_size
The size of DEVICE temporary buffer.
nvxcu_tmp_buf_size_t nvxcuHarrisCorners_GetBufSize(uint32_t width, uint32_t height, nvxcu_df_image_e format, float min_distance, int32_t gradient_size, int32_t block_size, nvxcu_array_item_type_e arr_type, uint32_t arr_capacity, const nvxcu_border_t *border, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuHarrisCorners primi...
A single plane of 32-bit macro pixel of Y0, U0, Y1, V0 bytes.
Aggregate cost from left to right diagonally starting from the top.
nvxcu_error_status_e nvxcuMultiply(const nvxcu_image_t *in1, const nvxcu_image_t *in2, float scale, nvxcu_convert_policy_e overflow_policy, nvxcu_round_policy_e rounding_policy, const nvxcu_image_t *out, const nvxcu_exec_target_t *exec_target)
Performs element-wise multiplication between two images and a scalar value.
uint32_t end_x
The End X coordinate.
A combination of iterations and epsilon.
nvxcu_array_item_type_e
Defines an array item type enumeration.
#define NVXCU_NB_MAX_PLANES
Defines the maximum number of planes in an image object.
nvxcu_error_status_e nvxcuHoughLines(const nvxcu_image_t *input, const nvxcu_array_t *output, float rho, float theta, uint32_t threshold, uint32_t *num_lines_dev_ptr, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Finds lines on image using standard Hough transform.
float error
The tracking method specific error.
nvxcu_pyramid_type_e pyramid_type
Object type ID.
CUDA stream execution target.
float error
The tracking method specific error.
nvxcu_error_status_e nvxcuPartitionMotionField(const nvxcu_image_t *ref_image, const nvxcu_image_t *cur_image, const nvxcu_image_t *in_mv_0, const nvxcu_image_t *in_mv_1, const nvxcu_image_t *out_mv_0, const nvxcu_image_t *out_mv_1, float smoothness_factor, int32_t mv_div_factor, const nvxcu_exec_target_t *exec_target)
Partitions motion vector field for blocks onto motion vector field into quarter sized blocks (half si...
int32_t x
The x coordinate.
Aggregate cost from top to bottom vertically.
nvxcu_interpolation_type_e
Defines an interpolation type enumeration.
nvxcu_error_status_e nvxcuErode3x3(const nvxcu_image_t *input, const nvxcu_image_t *output, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Performs erosion operation on an input image.
nvxcu_error_status_e nvxcuGaussian3x3(const nvxcu_image_t *input, const nvxcu_image_t *output, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Computes a Gaussian filter over a 3x3 window of the input image.
A single plane of 16-bit signed integer data.
nvxcu_channel_range_e
Defines an image channel range enumeration.
nvxcu_error_status_e nvxcuAccumulateImage(const nvxcu_image_t *input, const nvxcu_image_t *accum, const nvxcu_exec_target_t *exec_target)
Accumulates an input image into output image.
Saturate conversion policy.
Indicates that current set of parameters is not supported.
uint32_t y
The Y coordinate.
Vertical flipping of the image.
Used to extract the LUMA channel.
nvxcu_uniform_image_t object.
nvxcu_tmp_buf_size_t nvxcuEqualizeHist_GetBufSize(uint32_t input_width, uint32_t input_height, nvxcu_df_image_e input_format, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuEqualizeHist primit...
A 3 plane of 8-bit 4:2:0 sampled Y, U, V planes.
A single 24-bit pixel plane of 3 interleaved 8-bit RGB units.
nvxcu_error_status_e nvxcuMultiplyByScalar(const nvxcu_image_t *src, const nvxcu_image_t *dst, float alpha, const nvxcu_exec_target_t *exec_target)
Multiplies an input image by scalar and optionally converts it to another data type.
uint32_t x
The X coordinate.
uint32_t capacity
Capacity of the array buffer (in elements).
Aggregate cost from right to left diagonally starting from the top.
nvxcu_error_status_e nvxcuMedian3x3(const nvxcu_image_t *input, const nvxcu_image_t *output, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Computes a median pixel value over a 3x3 window of the input image.
Aggregate cost from left to right diagonally starting from the bottom.
nvxcu_error_status_e nvxcuMinMaxLoc(const nvxcu_image_t *input, void *min_val_dev_ptr, void *max_val_dev_ptr, const nvxcu_array_t *min_loc, const nvxcu_array_t *max_loc, uint32_t *min_count_dev_ptr, uint32_t *max_count_dev_ptr, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Finds the minimum and maximum values in an image and a location for each.
nvxcu_tmp_buf_size_t nvxcuFastTrack_GetBufSize(uint32_t width, uint32_t height, nvxcu_df_image_e format, nvxcu_array_item_type_e arr_type, uint32_t arr_capacity, uint32_t cell_size, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuFastTrack primitive...
int32_t y
The y coordinate.
nvxcu_error_status_e nvxcuBitwiseOr(const nvxcu_image_t *in1, const nvxcu_image_t *in2, const nvxcu_image_t *out, const nvxcu_exec_target_t *exec_target)
Performs a bitwise OR operation between two images.
float F32
NVXCU_DF_IMAGE_F32.
nvxcu_error_status_e nvxcuFlipImage(const nvxcu_image_t *input, const nvxcu_image_t *output, nvxcu_flip_mode_e flip_mode, const nvxcu_exec_target_t *exec_target)
Flips the input image in horizontal, vertical or in both directions.
Used to extract the channel #1.
nvxcu_error_status_e nvxcuChannelCombine(const nvxcu_image_t *plane0, const nvxcu_image_t *plane1, const nvxcu_image_t *plane2, const nvxcu_image_t *plane3, const nvxcu_image_t *output, const nvxcu_exec_target_t *exec_target)
Combines multiple planes into single multi-channel image.
uint32_t y
The Y coordinate.
Defines a 3D point data structure (float coordinates).
nvxcu_tmp_buf_size_t nvxcuHistogram_GetBufSize(uint32_t input_width, uint32_t input_height, nvxcu_df_image_e input_format, uint32_t offset, uint32_t range, uint32_t num_bins, uint32_t window_size, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuHistogram primitive...
nvxcu_error_status_e nvxcuColorConvert(const nvxcu_image_t *input, const nvxcu_image_t *output, nvxcu_color_space_e color_space, nvxcu_channel_range_e channel_range, const nvxcu_exec_target_t *exec_target)
Converts from one color format to an other.
No defined border mode behavior.
nvxcu_error_status_e nvxcuSemiGlobalMatching(const nvxcu_image_t *left, const nvxcu_image_t *right, const nvxcu_image_t *disparity, int32_t minD, int32_t maxD, int32_t P1, int32_t P2, int32_t sad, int32_t clip, int32_t max_diff, int32_t uniqueness, nvxcu_scanline_e scanlines_mask, nvxcu_sgm_flags_e flags, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Evaluates disparity given 2 stereo images using the SGM algorithm.
A single plane of int16_t[2] data (for example, motion fields).
Defines a keypoint data structure with integer coordinates.
nvxcu_error_status_e nvxcuRemap(const nvxcu_image_t *input, const nvxcu_image_t *table, nvxcu_interpolation_type_e policy, const nvxcu_image_t *output, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Maps output pixels in an image from input pixels in an image.
uint32_t start_y
The Start Y coordinate.
uint32_t height
Image height.
Out-of-bound pixels are replicated from the nearest edge pixels.
nvxcu_error_status_e nvxcuRefineMotionField(const nvxcu_image_t *in_mv0, const nvxcu_image_t *in_mv1, const nvxcu_image_t *sad_table, const nvxcu_image_t *out_mv0, const nvxcu_image_t *out_mv1, int32_t search_window_width, int32_t search_window_height, int32_t num_iterations, float smoothness_factor, int32_t mv_div_factor, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Iteratively refines motion field by applying the motion vectors to a center block in a 3x3 block neig...
nvxcu_error_status_e nvxcuHistogram(const nvxcu_image_t *input, uint32_t *distribution_dev_ptr, uint32_t offset, uint32_t range, uint32_t num_bins, uint32_t window_size, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Generates a distribution from an image.
float orientation
The orientation of the keypoint.
Simultaneous horizontal and vertical flipping of the image.
nvxcu_scanline_e
Defines scan line's directions used during cost aggregation step.
Full range of the unit of the channel.
nvxcu_error_status_e nvxcuStereoBlockMatching(const nvxcu_image_t *left, const nvxcu_image_t *right, const nvxcu_image_t *disp, uint32_t win_size, uint32_t max_disparity, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Computes a dense disparity map for a given stereo pair.
nvxcu_round_policy_e
Defines a round policy enumeration.
Out-of-bound pixels are filled with constant value.
Aggregate cost from right to left horizontally.
nvxcu_error_status_e nvxcuEqualizeHist(const nvxcu_image_t *input, const nvxcu_image_t *output, const nvxcu_tmp_buf_t *tmp_buf, const nvxcu_exec_target_t *exec_target)
Equalizes the histogram of a grayscale image.
nvxcu_error_status_e nvxcuBox3x3(const nvxcu_image_t *input, const nvxcu_image_t *output, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Computes a Box filter over a 3x3 window of the input image.
nvxcu_tmp_buf_size_t nvxcuConvolve_GetBufSize(uint32_t width, uint32_t height, nvxcu_df_image_e input_format, int32_t kernel_width, int32_t kernel_height, nvxcu_df_image_e output_format, const nvxcu_border_t *border, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuConvolve primitive...
nvxcu_array_type_e array_type
Object type ID.
nvxcu_error_status_e nvxcuTableLookup(const nvxcu_image_t *input, const uint8_t *lut_dev_ptr, uint32_t lut_count, const nvxcu_image_t *output, const nvxcu_exec_target_t *exec_target)
Performs table lookup operation on an input image.
uint16_t U16
NVXCU_DF_IMAGE_U16.
A single plane of 32-bit macro pixel of U0, Y0, V0, Y1 bytes.
nvxcu_error_status_e nvxcuWarpAffine(const nvxcu_image_t *input, const float *matrix_dev_ptr, nvxcu_interpolation_type_e type, const nvxcu_image_t *output, const nvxcu_border_t *border, const nvxcu_exec_target_t *exec_target)
Performs an affine transform on an image.
nvxcu_error_status_e nvxcuBitwiseXor(const nvxcu_image_t *in1, const nvxcu_image_t *in2, const nvxcu_image_t *out, const nvxcu_exec_target_t *exec_target)
Performs a bitwise XOR operation between two images.
Used to extract the channel #3.
nvxcu_tmp_buf_size_t nvxcuMeanStdDev_GetBufSize(uint32_t input_width, uint32_t input_height, nvxcu_df_image_e input_format, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuMeanStdDev primitiv...
float scale
The scale of the keypoint.
nvxcu_error_status_e nvxcuBitwiseNot(const nvxcu_image_t *input, const nvxcu_image_t *output, const nvxcu_exec_target_t *exec_target)
Performs a bitwise NOT operation on an input image.
Base structure for execution target.
nvxcu_color_space_e
Defines an image color space enumeration.
Aggregate cost over all scan lines.
A 3 plane of 8 bit 4:4:4 sampled Y, U, V planes.
int32_t tracking_status
The tracking status of the keypoint.
nvxcu_exec_target_t base
Base execution target structure.
float scale
The pyramid scale factor.
A single plane of 16-bit unsigned integer data.
int16_t S16
NVXCU_DF_IMAGE_S16.
Defines the size of temporary buffers.
nvxcu_flip_mode_e
Defines modes for flip image operation.
A nvxcu_interpolation_type_e.
Aggregate cost from bottom to top vertically.
#define NVXCU_DF_IMAGE(a, b, c, d)
Converts a set of four chars into a single uint32_t value.
A single plane of 32-bit float data.
nvxcu_tmp_buf_size_t nvxcuFastCorners_GetBufSize(uint32_t width, uint32_t height, nvxcu_df_image_e format, int32_t nonmax_suppression, nvxcu_array_item_type_e arr_type, uint32_t arr_capacity, const nvxcu_border_t *border, const struct cudaDeviceProp *prop)
Determine the size of CUDA Device and HOST memory that must be passed to the nvxcuFastCorners primiti...
A 2-plane YUV format of Luma (Y) and interleaved UV data at 4:2:0 sampling.
Indicates that requested operation is not implemented.
uint32_t num_levels
The number of pyramid levels.
nvxcu_border_mode_e mode
Border mode.
Indicates that current set of parameters is invalid.
nvxcu_array_t base
Base array structure.
A nvxcu_convert_policy_e.
nvxcu_error_status_e nvxcuSubtract(const nvxcu_image_t *in1, const nvxcu_image_t *in2, nvxcu_convert_policy_e policy, const nvxcu_image_t *out, const nvxcu_exec_target_t *exec_target)
Performs subtraction between two images.
Used to extract the Cb/U channel.