26 #include "nvx_export.h"
34 # define NVX_EXTERN_C extern "C"
41 #define NVX_C_API NVX_EXTERN_C NVX_EXPORT
45 #define NVX_CXX_API NVX_EXPORT
65 typedef struct _nvx_version_info_t {
69 char visionworks_suffix_version[12];
80 typedef struct _nvx_module_version_t {
161 #define NVX_LIBRARY_NVIDIA (0x0)
212 typedef struct _nvx_point2f_t {
221 typedef struct _nvx_point3f_t {
231 typedef struct _nvx_point4f_t {
246 typedef struct _nvx_keypointf_t {
308 #define NVX_MAP_NO_PIXEL_GAPS (1 << 0)
struct _vx_image * vx_image
An opaque reference to an image.
vx_status nvxuFlipImage(vx_context context, vx_image input, vx_image output, vx_enum flip_mode)
[Immediate] Flips the input image.
nvx_find_homography_method_e
Method used to compute a homography matrix.
vx_status nvxuHoughCircles(vx_context context, vx_image edges, vx_image dx, vx_image dy, vx_array circles, vx_scalar s_num_detections, vx_float32 dp, vx_float32 minDist, vx_uint32 minRadius, vx_uint32 maxRadius, vx_uint32 acc_threshold)
[Immediate] Detects circles in a binary image.
struct _vx_delay * vx_delay
The delay object. This is like a ring buffer of objects that is maintained by the OpenVX implementati...
vx_bool
A Boolean value. This allows 0 to be FALSE, as it is in C, and any non-zero to be TRUE...
aggregate cost from left to right diagonally starting from the bottom.
vx_node nvxHarrisTrackNode(vx_graph graph, vx_image input, vx_array output, vx_image mask, vx_array tracked_points, vx_float32 k, vx_float32 threshold, vx_uint32 cell_size, vx_scalar num_corners)
[Graph] Detects and tracks Harris corners for the input image.
vx_status nvxMapRemapPatch(vx_remap remap, vx_rectangle_t *rect, vx_imagepatch_addressing_t *addr, void **ptr, vx_enum usage)
Maps a rectangular patch (subset) of a remap object.
nvx_accessor_e
Extended memory accessors.
A floating value for vendor-defined struct base index.
A regular method using all the points.
Defines a 4D point (float coordinates).
Indicates that the CUDA-capable GPU is not supported.
vx_float32 y
Holds the y coordinate.
Specifies Laplacian 3 x 3 Kernel.
Specifies Median Flow Kernel.
nvx_type_e
Defines additional types.
struct _vx_array * vx_array
The Array Object. Array is a strongly-typed container for other data structures.
Specifies Hough Lines Kernel.
A Change of the parameter meta-data implies a node re-initialization.
vx_status nvxUnmapImagePatch(vx_image image, const vx_rectangle_t *rect, vx_uint32 plane_index, void *ptr, vx_enum memory_type)
Unmaps a mapped patch (subset) of an image.
Gets the CUDA stream object associated with the current node.
size_t vx_size
A wrapper of size_t to keep the naming convention uniform.
vx_node nvxFastTrackNode(vx_graph graph, vx_image input, vx_array output, vx_image mask, vx_array tracked_points, vx_uint32 type, vx_uint32 threshold, vx_uint32 cell_size, vx_scalar num_corners)
[Graph] Detects and tracks corners using the FAST algorithm.
void nvxGetVersionInfo(nvx_version_info_t *info)
Gets information about VisionWorks library version.
Defines a 2D point (float coordinates).
VisionWorks library version information.
A floating value used for bound checking the VisionWorks object types.
int32_t vx_enum
Sets the standard enumeration type size to be a fixed quantity.
int32_t vx_int32
A 32-bit signed value.
nvx_node_attribute_e
The extended node attributes list.
Vertical flipping of the image.
nvx_scanline_e
Defines scan line's directions used during cost aggregation step.
nvx_import_type_e
Extended import type.
vx_float32 scale
Holds the scale initialized to 0 by corner detectors.
Disables keypoint's error calculation by optical flow and similar primitives.
A Change of the parameter meta-data or value implies a node re-initialization.
nvx_mutability_e
Defines the mutability state of custom kernel parameter.
vx_uint32 openvx_patch_version
Patch version of OpenVX standard implemented by VisionWorks library.
float vx_float32
A 32-bit float value.
vx_uint32 visionworks_minor_version
Minor version of VisionWorks library.
vx_status nvxMapImagePatch(vx_image image, const vx_rectangle_t *rect, vx_uint32 plane_index, vx_imagepatch_addressing_t *addr, void **ptr, vx_enum usage, vx_enum memory_type, vx_uint32 flags)
Maps a rectangular patch (subset) of an image from a single plane.
vx_status nvxuHoughSegments(vx_context context, vx_image input, vx_array output, vx_float32 rho, vx_float32 theta, vx_uint32 threshold, vx_uint32 minLineLength, vx_uint32 maxLineGap, vx_scalar num_segments)
[Immediate] Finds line segments in a binary image using the probabilistic Hough transform.
vx_uint32 openvx_major_version
Major version of OpenVX standard implemented by VisionWorks library.
A single plane of 48 bit pixels as 3 interleaved 16 bit signed integers of R then G then B data...
vx_node nvxFlipImageNode(vx_graph graph, vx_image input, vx_image output, vx_enum flip_mode)
[Graph] Flips the input image.
Specifies FAST Track Kernel.
Aggregate cost from four directions forming a cross.
vx_node nvxCreateMotionFieldNode(vx_graph graph, vx_image ref_image, vx_image cur_image, vx_image anchor, vx_image bias, vx_image best_mv0, vx_image best_mv1, vx_image sad_table, vx_int32 blockSize, vx_int32 searchWindowWidth, vx_int32 searchWindowHeight, vx_float32 biasWeight, vx_int32 mvDivFactor)
[Graph] Creates initial motion field from a current image into reference image.
vx_enum vx_status
A formal status type with known fixed size.
vx_status nvxuScharr3x3(vx_context context, vx_image input, vx_image grad_x, vx_image grad_y)
[Immediate] Applies Scharr 3 x 3 operator.
vx_status nvxuHarrisTrack(vx_context context, vx_image input, vx_array output, vx_image mask, vx_array tracked_points, vx_float32 k, vx_float32 threshold, vx_uint32 cell_size, vx_scalar num_corners)
[Immediate] Detects and tracks Harris corners for the input image.
#define VX_ENUM_BASE(vendor, id)
Defines the manner in which to combine the Vendor and Object IDs to get the base value of the enumera...
struct _vx_context * vx_context
An opaque reference to the implementation context.
aggregate cost from right to left diagonally starting from the bottom.
vx_status nvxuPartitionMotionField(vx_context context, vx_image ref_image, vx_image cur_image, vx_image in_mv_0, vx_image in_mv_1, vx_image out_mv_0, vx_image out_mv_1, vx_float32 smoothnessFactor, vx_int32 mvDivFactor)
[Immediate] Partitions motion vector field for blocks onto motion vector field into quarter sized blo...
vx_status nvxuFindHomography(vx_context context, vx_array srcPoints, vx_array dstPoints, vx_matrix homography, vx_enum method, vx_float32 threshold, vx_array inliers)
[Immediate] Computes homography matrix.
struct _vx_reference * vx_reference
A generic opaque reference to any object within OpenVX.
vx_float32 orientation
Holds the orientation initialized to 0 by corner detectors.
vx_node nvxMultiplyByScalarNode(vx_graph graph, vx_image src, vx_image dst, vx_float32 alpha)
[Graph] Multiplies an input image by scalar and optionally converts it to another data type...
vx_float32 y
The Y coordinate.
vx_uint32 visionworks_major_version
Major version of VisionWorks library.
VisionWorks module version.
Uses default behavior for keypoint's error calculation.
ID of the CUDA device that was selected as current prior to vx_context object creation (use an int pa...
vx_node nvxFindHomographyNode(vx_graph graph, vx_array srcPoints, vx_array dstPoints, vx_matrix homography, vx_enum method, vx_float32 threshold, vx_array inliers)
[Graph] Computes homography matrix.
vx_node nvxLaplacian3x3Node(vx_graph graph, vx_image input, vx_image output)
[Graph] Creates a Laplacian filter node.
vx_float32 z
The Z coordinate.
vx_int32 tracking_status
Holds tracking status. Zero indicates a lost point. Initialized to 1 by corner detectors.
nvx_kernel_e
Defines a list of extended vision kernels.
aggregate cost from left to right diagonally starting from the top.
#define NVX_LIBRARY_NVIDIA
The extended set of kernels provided by NVIDIA.
Specifies Hough Circles Kernel.
Horizontal flipping of the image.
vx_status nvxuSemiGlobalMatching(vx_context context, vx_image left, vx_image right, vx_image disparity, vx_int32 minD, vx_int32 maxD, vx_int32 P1, vx_int32 P2, vx_int32 sad, vx_int32 clip, vx_int32 max_diff, vx_int32 uniqueness, vx_enum scanlines_mask)
[Immediate] evaluate disparity given 2 stereo images using the SGM algorithm.
vx_node nvxScharr3x3Node(vx_graph graph, vx_image input, vx_image grad_x, vx_image grad_y)
[Graph] Applies Scharr 3 x 3 operator.
vx_float32 error
Holds a tracking method-specific error. Initialized to 0 by corner detectors.
Specifies Scharr 3 x 3 Kernel.
vx_float32 x
The X coordinate.
The memory import enumeration.
The addressing image patch structure is used by the Host only to address pixels in an image patch...
vx_float32 x
The X coordinate.
vx_node nvxRefineMotionFieldNode(vx_graph graph, vx_image in_mv0, vx_image in_mv1, vx_image sad_table, vx_image out_mv0, vx_image out_mv1, vx_int32 searchWindowWidth, vx_int32 searchWindowHeight, vx_int32 numIterations, vx_float32 smoothnessFactor, vx_int32 mvDivFactor)
[Graph] Iteratively refines motion field by applying the motion vectors to a center block in a 3x3 bl...
#define VX_ATTRIBUTE_BASE(vendor, object)
Defines the manner in which to combine the Vendor and Object IDs to get the base value of the enumera...
A floating value for comparison between structs and objects.
vx_node nvxCopyImageNode(vx_graph graph, vx_image src, vx_image dst)
[Graph] Copies data from one image to another.
vx_node nvxHoughSegmentsNode(vx_graph graph, vx_image input, vx_array output, vx_float32 rho, vx_float32 theta, vx_uint32 threshold, vx_uint32 minLineLength, vx_uint32 maxLineGap, vx_scalar num_segments)
[Graph] Finds line segments in a binary image using the probabilistic Hough transform.
vx_status nvxuStereoBlockMatching(vx_context context, vx_image left, vx_image right, vx_image disp, vx_uint32 winSize, vx_uint32 maxDisparity)
[Immediate] This primitive computes a dense disparity map for a given stereo pair.
Specifies Find Homography Kernel.
vx_float32 y
The Y coordinate.
aggregate cost from right to left diagonally starting from the top.
vx_status nvxRegisterAutoAging(vx_graph graph, vx_delay delay)
Registers a delay for auto-aging.
Enables keypoint's error calculation by optical flow and similar primitives.
nvx_context_attribute_e
The extended context attributes list.
A Change of the parameter does not imply a node re-initialization.
vx_status nvxSetNodeTargetDevice(vx_node node, vx_enum device)
Sets the target device type for the node.
vx_status nvxUnmapRemapPatch(vx_remap remap, void *ptr)
Unmaps a mapped patch (subset) of a remap object.
struct _vx_kernel * vx_kernel
An opaque reference to the descriptor of a kernel.
vx_node nvxStereoBlockMatchingNode(vx_graph graph, vx_image left, vx_image right, vx_image disp, vx_uint32 winSize, vx_uint32 maxDisparity)
[Graph] This primitive computes a dense disparity map for a given stereo pair.
A single plane of vx_int16[2] data (eg.
The CUDA import memory type.
Specifies Create Motion Field Kernel.
Specifies Hough Segments Kernel.
Specifies Flip Image Kernel.
nvx_status_e
Defines additional error codes.
aggregate cost from right to left horizontally.
The rectangle data structure that is shared with the users.
vx_uint32 minor
Minor version component.
#define VX_DF_IMAGE(a, b, c, d)
Converts a set of four chars into a uint32_t container of a VX_DF_IMAGE code.
vx_status nvxuCopyImage(vx_context context, vx_image src, vx_image dst)
[Immediate] Copies data from one image to another.
vx_node nvxPartitionMotionFieldNode(vx_graph graph, vx_image ref_image, vx_image cur_image, vx_image in_mv_0, vx_image in_mv_1, vx_image out_mv_0, vx_image out_mv_1, vx_float32 smoothnessFactor, vx_int32 mvDivFactor)
[Graph] Partitions motion vector field for blocks onto motion vector field into quarter sized blocks ...
Use default behavior for performance measurement.
Least-Median robust method.
vx_float32 y
The Y coordinate.
vx_uint32 openvx_minor_version
Minor version of OpenVX standard implemented by VisionWorks library.
vx_image nvxCreateImageFromChannel(vx_image imgref, vx_enum channel)
Creates an image from a single channel of another image.
The top level OpenVX Header.
A floating value for vendor defined object base index.
Defines a 3D point (float coordinates).
aggregate cost over all scan lines.
A single plane of vx_float32 data.
Sets the graph verification options.
vx_node nvxHoughLinesNode(vx_graph graph, vx_image input, vx_array output, vx_float32 rho, vx_float32 theta, vx_uint32 threshold, vx_scalar num_lines)
[Graph] Finds lines on image using standard Hough transform.
Simultaneous horizontal and vertical flipping of the image.
vx_float32 z
The Z coordinate.
vx_float32 strength
Holds the strength of the keypoint. Its definition is specific to the corner detector.
vx_node nvxSemiGlobalMatchingNode(vx_graph graph, vx_image left, vx_image right, vx_image disparity, vx_int32 minD, vx_int32 maxD, vx_int32 P1, vx_int32 P2, vx_int32 sad, vx_int32 clip, vx_int32 max_diff, vx_int32 uniqueness, vx_enum scanlines_mask)
[Graph] evaluate disparity given 2 stereo images using the SGM algorithm.
nvx_df_image_e
Defines additional image formats.
Specifies Harris Track Kernel.
Enables performance measurement.
nvx_graph_attribute_e
The extended graph attributes list.
The OpenVX Utility Library.
vx_uint32 patch
Patch version component.
Preferred target device for the immediate primitive execution mode (use a nvx_device_type_e).
Informs if graph verification is needed before graph execution.
vx_status nvxuFastTrack(vx_context context, vx_image input, vx_array output, vx_image mask, vx_array tracked_points, vx_uint32 type, vx_uint32 threshold, vx_uint32 cell_size, vx_scalar num_corners)
[Immediate] Detects and tracks corners using the FAST algorithm.
RANSAC-based robust method.
struct _vx_remap * vx_remap
The remap table Object. A remap table contains per-pixel mapping of output pixels to input pixels...
uint32_t vx_uint32
A 32-bit unsigned value.
Indicates that no CUDA-capable GPU was found.
aggregate cost from left to right horizontally.
Specifies Multiply by Scalar Kernel.
vx_float32 x
Holds the x coordinate.
vx_status nvxSetKernelParameterMutability(vx_kernel kernel, vx_uint32 index, vx_enum mutability)
Allows users to set the mutability of the custom kernel. By default, kernel parameters are set to NVX...
#define VX_KERNEL_BASE(vendor, lib)
Defines the manner in which to combine the Vendor and Library IDs to get the base value of the enumer...
Specifies Copy Image Kernel.
aggregate cost from top to bottom vertically.
Specifies Stereo Block Matching Kernel.
vx_float32 w
The W coordinate.
vx_uint32 major
Major version component.
nvx_enum_e
Defines the additional set of supported enumerations.
Defines a keypoint data structure.
Disables performance measurement.
nvx_device_type_e
Defines types of devices that can execute vision functions.
struct _vx_graph * vx_graph
An opaque reference to a graph.
A single plane of vx_float32[2] data (eg.
vx_status nvxuHoughLines(vx_context context, vx_image input, vx_array output, vx_float32 rho, vx_float32 theta, vx_uint32 threshold, vx_scalar num_lines)
[Immediate] Finds lines on image using standard Hough transform.
struct _vx_node * vx_node
An opaque reference to a kernel node.
vx_node nvxHoughCirclesNode(vx_graph graph, vx_image edges, vx_image dx, vx_image dy, vx_array circles, vx_scalar s_num_detections, vx_float32 dp, vx_float32 minDist, vx_uint32 minRadius, vx_uint32 maxRadius, vx_uint32 acc_threshold)
[Graph] Detects circles in a binary image.
Specifies Refine Motion Field Kernel.
nvx_directive_e
Defines directives that control different features for graph / immediate processing.
Specifies Semi Global Matching Kernel.
Specifies Partition Motion Field Kernel.
vx_graph nvxCreateStreamGraph(vx_context context)
Creates an empty graph as a node stream.
struct _vx_matrix * vx_matrix
The Matrix Object. An MxN matrix of some unit type.
struct _vx_scalar * vx_scalar
An opaque reference to a scalar.
vx_status nvxuRefineMotionField(vx_context context, vx_image in_mv0, vx_image in_mv1, vx_image sad_table, vx_image out_mv0, vx_image out_mv1, vx_int32 searchWindowWidth, vx_int32 searchWindowHeight, vx_int32 numIterations, vx_float32 smoothnessFactor, vx_int32 mvDivFactor)
[Immediate] Iteratively refines motion field by applying the motion vectors to a center block in a 3x...
vx_status nvxuMultiplyByScalar(vx_context context, vx_image src, vx_image dst, vx_float32 alpha)
[Immediate] Multiplies an input image by scalar and optionally converts it to another data type...
vx_status nvxReleaseReferenceList(vx_reference ref_list[], vx_size num_refs)
Releases a list of references to OpenVX objects.
aggregate cost from bottom to top vertically.
vx_status nvxuCreateMotionField(vx_context context, vx_image ref_image, vx_image cur_image, vx_image anchor, vx_image bias, vx_image best_mv0, vx_image best_mv1, vx_image sad_table, vx_int32 blockSize, vx_int32 searchWindowWidth, vx_int32 searchWindowHeight, vx_float32 biasWeight, vx_int32 mvDivFactor)
[Immediate] Creates initial motion field from a current image into reference image.
nvx_flip_mode_e
Defines modes for flip image operation.
vx_status nvxuLaplacian3x3(vx_context context, vx_image input, vx_image output)
[Immediate] Applies a Laplacian operator to the input image.
vx_status nvxRetainReference(vx_reference ref)
Increments the reference counter of an object.
vx_uint32 visionworks_patch_version
Patch version of VisionWorks library.
vx_float32 x
The X coordinate.