The OpenVX Specification  r28647
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
vx_nodes.h
1 /*******************************************************************************
2 * Copyright (c) 2012-2014 The Khronos Group Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and/or associated documentation files (the
6 * "Materials"), to deal in the Materials without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sublicense, and/or sell copies of the Materials, and to
9 * permit persons to whom the Materials are furnished to do so, subject to
10 * the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included
13 * in all copies or substantial portions of the Materials.
14 *
15 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
22 ******************************************************************************/
23 
24 #ifndef _OPENVX_NODES_H_
25 #define _OPENVX_NODES_H_
26 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
48 VX_API vx_node vxColorConvertNode(vx_graph graph, vx_image input, vx_image output);
49 
62  vx_image input,
63  vx_enum channel,
64  vx_image output);
65 
80  vx_image plane0,
81  vx_image plane1,
82  vx_image plane2,
83  vx_image plane3,
84  vx_image output);
85 
97 VX_API vx_node vxPhaseNode(vx_graph graph, vx_image grad_x, vx_image grad_y, vx_image orientation);
98 
110 VX_API vx_node vxSobel3x3Node(vx_graph graph, vx_image input, vx_image output_x, vx_image output_y);
111 
112 
124 VX_API vx_node vxMagnitudeNode(vx_graph graph, vx_image grad_x, vx_image grad_y, vx_image mag);
125 
139 VX_API vx_node vxScaleImageNode(vx_graph graph, vx_image src, vx_image dst, vx_enum type);
140 
151 VX_API vx_node vxTableLookupNode(vx_graph graph, vx_image input, vx_lut lut, vx_image output);
152 
162 VX_API vx_node vxHistogramNode(vx_graph graph, vx_image input, vx_distribution distribution);
163 
173 VX_API vx_node vxEqualizeHistNode(vx_graph graph, vx_image input, vx_image output);
174 
185 VX_API vx_node vxAbsDiffNode(vx_graph graph, vx_image in1, vx_image in2, vx_image out);
186 
197 VX_API vx_node vxMeanStdDevNode(vx_graph graph, vx_image input, vx_scalar mean, vx_scalar stddev);
198 
210 VX_API vx_node vxThresholdNode(vx_graph graph, vx_image input, vx_threshold thresh, vx_image output);
211 
221 VX_API vx_node vxIntegralImageNode(vx_graph graph, vx_image input, vx_image output);
222 
232 VX_API vx_node vxErode3x3Node(vx_graph graph, vx_image input, vx_image output);
233 
243 VX_API vx_node vxDilate3x3Node(vx_graph graph, vx_image input, vx_image output);
244 
254 VX_API vx_node vxMedian3x3Node(vx_graph graph, vx_image input, vx_image output);
255 
265 VX_API vx_node vxBox3x3Node(vx_graph graph, vx_image input, vx_image output);
266 
276 VX_API vx_node vxGaussian3x3Node(vx_graph graph, vx_image input, vx_image output);
277 
288 VX_API vx_node vxConvolveNode(vx_graph graph, vx_image input, vx_convolution conv, vx_image output);
289 
300 VX_API vx_node vxGaussianPyramidNode(vx_graph graph, vx_image input, vx_pyramid gaussian);
301 
311 VX_API vx_node vxAccumulateImageNode(vx_graph graph, vx_image input, vx_image accum);
312 
323 VX_API vx_node vxAccumulateWeightedImageNode(vx_graph graph, vx_image input, vx_scalar alpha, vx_image accum);
324 
335 VX_API vx_node vxAccumulateSquareImageNode(vx_graph graph, vx_image input, vx_scalar shift, vx_image accum);
336 
351 VX_API vx_node vxMinMaxLocNode(vx_graph graph,
352  vx_image input,
353  vx_scalar minVal, vx_scalar maxVal,
354  vx_array minLoc, vx_array maxLoc,
355  vx_scalar minCount, vx_scalar maxCount);
356 
367 VX_API vx_node vxAndNode(vx_graph graph, vx_image in1, vx_image in2, vx_image out);
368 
379 VX_API vx_node vxOrNode(vx_graph graph, vx_image in1, vx_image in2, vx_image out);
380 
391 VX_API vx_node vxXorNode(vx_graph graph, vx_image in1, vx_image in2, vx_image out);
392 
402 VX_API vx_node vxNotNode(vx_graph graph, vx_image input, vx_image output);
403 
417 VX_API vx_node vxMultiplyNode(vx_graph graph,
418  vx_image in1, vx_image in2,
419  vx_scalar scale,
420  vx_enum overflow_policy,
421  vx_enum rounding_policy,
422  vx_image out);
423 
435 VX_API vx_node vxAddNode(vx_graph graph,
436  vx_image in1, vx_image in2,
437  vx_enum policy,
438  vx_image out);
439 
451 VX_API vx_node vxSubtractNode(vx_graph graph,
452  vx_image in1, vx_image in2,
453  vx_enum policy,
454  vx_image out);
455 
467 VX_API vx_node vxConvertDepthNode(vx_graph graph, vx_image input, vx_image output, vx_enum policy, vx_scalar shift);
468 
482  vx_int32 gradient_size, vx_enum norm_type,
483  vx_image output);
484 
499 VX_API vx_node vxWarpAffineNode(vx_graph graph, vx_image input, vx_matrix matrix, vx_enum type, vx_image output);
500 
515 VX_API vx_node vxWarpPerspectiveNode(vx_graph graph, vx_image input, vx_matrix matrix, vx_enum type, vx_image output);
516 
535  vx_image input,
536  vx_scalar strength_thresh,
537  vx_scalar min_distance,
538  vx_scalar sensitivity,
539  vx_int32 gradient_size,
540  vx_int32 block_size,
541  vx_array corners,
542  vx_scalar num_corners);
543 
557 VX_API vx_node vxFastCornersNode(vx_graph graph, vx_image input, vx_scalar strength_thresh, vx_bool nonmax_suppression, vx_array corners, vx_scalar num_corners);
558 
582  vx_pyramid old_images,
583  vx_pyramid new_images,
584  vx_array old_points,
585  vx_array new_points_estimates,
586  vx_array new_points,
587  vx_enum termination,
588  vx_scalar epsilon,
589  vx_scalar num_iterations,
590  vx_scalar use_initial_estimate,
591  vx_size window_dimension);
592 
607 VX_API vx_node vxRemapNode(vx_graph graph,
608  vx_image input,
609  vx_remap table,
610  vx_enum policy,
611  vx_image output);
612 
629 VX_API vx_node vxHalfScaleGaussianNode(vx_graph graph, vx_image input, vx_image output, vx_int32 kernel_size);
630 
631 #ifdef __cplusplus
632 }
633 #endif
634 
635 #endif
struct _vx_image * vx_image
An opaque reference to an image.
Definition: vx_types.h:144
vx_bool
A Boolean value. This allows 0 to be FALSE, as it is in C, and any non-zero to be TRUE...
Definition: vx_types.h:250
vx_node vxDilate3x3Node(vx_graph graph, vx_image input, vx_image output)
[Graph] Creates a Dilation Image Node.
struct _vx_array * vx_array
The Array Object. Array is a strongly-typed container for other data structures.
Definition: vx_types.h:237
size_t vx_size
A wrapper of size_t to keep the naming convention uniform.
Definition: vx_types.h:124
vx_node vxOrNode(vx_graph graph, vx_image in1, vx_image in2, vx_image out)
[Graph] Creates a bitwise INCLUSIVE OR node.
int32_t vx_enum
Sets the standard enumeration type size to be a fixed quantity.
Definition: vx_types.h:119
struct _vx_threshold * vx_threshold
The Threshold Object. A thresholding object contains the types and limit values of the thresholding r...
Definition: vx_types.h:220
struct _vx_distribution * vx_distribution
The Distribution object. This has a user-defined number of bins over a user-defined range (within a u...
Definition: vx_types.h:201
int32_t vx_int32
A 32-bit signed value.
Definition: vx_types.h:78
vx_node vxColorConvertNode(vx_graph graph, vx_image input, vx_image output)
[Graph] Creates a color conversion node.
vx_node vxWarpPerspectiveNode(vx_graph graph, vx_image input, vx_matrix matrix, vx_enum type, vx_image output)
[Graph] Creates a Perspective Warp Node.
vx_node vxSubtractNode(vx_graph graph, vx_image in1, vx_image in2, vx_enum policy, vx_image out)
[Graph] Creates an arithmetic subtraction node.
vx_node vxThresholdNode(vx_graph graph, vx_image input, vx_threshold thresh, vx_image output)
[Graph] Creates a Threshold node.
vx_node vxPhaseNode(vx_graph graph, vx_image grad_x, vx_image grad_y, vx_image orientation)
[Graph] Creates a Phase node.
vx_node vxMultiplyNode(vx_graph graph, vx_image in1, vx_image in2, vx_scalar scale, vx_enum overflow_policy, vx_enum rounding_policy, vx_image out)
[Graph] Creates an pixelwise-multiplication node.
vx_node vxSobel3x3Node(vx_graph graph, vx_image input, vx_image output_x, vx_image output_y)
[Graph] Creates a Sobel3x3 node.
vx_node vxMinMaxLocNode(vx_graph graph, vx_image input, vx_scalar minVal, vx_scalar maxVal, vx_array minLoc, vx_array maxLoc, vx_scalar minCount, vx_scalar maxCount)
[Graph] Creates a min,max,loc node.
vx_node vxHistogramNode(vx_graph graph, vx_image input, vx_distribution distribution)
[Graph] Creates a Histogram node.
vx_node vxWarpAffineNode(vx_graph graph, vx_image input, vx_matrix matrix, vx_enum type, vx_image output)
[Graph] Creates an Affine Warp Node.
vx_node vxChannelCombineNode(vx_graph graph, vx_image plane0, vx_image plane1, vx_image plane2, vx_image plane3, vx_image output)
[Graph] Creates a channel combine node.
vx_node vxHarrisCornersNode(vx_graph graph, vx_image input, vx_scalar strength_thresh, vx_scalar min_distance, vx_scalar sensitivity, vx_int32 gradient_size, vx_int32 block_size, vx_array corners, vx_scalar num_corners)
[Graph] Creates a Harris Corners Node.
vx_node vxConvertDepthNode(vx_graph graph, vx_image input, vx_image output, vx_enum policy, vx_scalar shift)
[Graph] Creates a bit-depth conversion node.
struct _vx_pyramid * vx_pyramid
The Image Pyramid object. A set of scaled images.
Definition: vx_types.h:213
vx_node vxGaussianPyramidNode(vx_graph graph, vx_image input, vx_pyramid gaussian)
[Graph] Creates a node for a Gaussian Image Pyramid.
vx_node vxGaussian3x3Node(vx_graph graph, vx_image input, vx_image output)
[Graph] Creates a Gaussian Filter Node.
vx_node vxFastCornersNode(vx_graph graph, vx_image input, vx_scalar strength_thresh, vx_bool nonmax_suppression, vx_array corners, vx_scalar num_corners)
[Graph] Creates a FAST Corners Node.
vx_node vxTableLookupNode(vx_graph graph, vx_image input, vx_lut lut, vx_image output)
[Graph] Creates a Table Lookup node.
vx_node vxRemapNode(vx_graph graph, vx_image input, vx_remap table, vx_enum policy, vx_image output)
[Graph] Creates a Remap Node.
vx_node vxAccumulateImageNode(vx_graph graph, vx_image input, vx_image accum)
[Graph] Creates an accumulate node.
vx_node vxAccumulateWeightedImageNode(vx_graph graph, vx_image input, vx_scalar alpha, vx_image accum)
[Graph] Creates a weighted accumulate node.
vx_node vxErode3x3Node(vx_graph graph, vx_image input, vx_image output)
[Graph] Creates an Erosion Image Node.
vx_node vxMagnitudeNode(vx_graph graph, vx_image grad_x, vx_image grad_y, vx_image mag)
[Graph] Create a Magnitude node.
vx_node vxBox3x3Node(vx_graph graph, vx_image input, vx_image output)
[Graph] Creates a Box Filter Node.
vx_node vxChannelExtractNode(vx_graph graph, vx_image input, vx_enum channel, vx_image output)
[Graph] Creates a channel extract node.
vx_node vxAddNode(vx_graph graph, vx_image in1, vx_image in2, vx_enum policy, vx_image out)
[Graph] Creates an arithmetic addition node.
struct _vx_convolution * vx_convolution
The Convolution Object. A user-defined convolution kernel of MxM elements.
Definition: vx_types.h:226
vx_node vxEqualizeHistNode(vx_graph graph, vx_image input, vx_image output)
[Graph] Creates a Histogram Equalization node.
struct _vx_remap * vx_remap
The remap table Object. A remap table contains per-pixel mapping of output pixels to input pixels...
Definition: vx_types.h:232
vx_node vxXorNode(vx_graph graph, vx_image in1, vx_image in2, vx_image out)
[Graph] Creates a bitwise EXCLUSIVE OR node.
vx_node vxCannyEdgeDetectorNode(vx_graph graph, vx_image input, vx_threshold hyst, vx_int32 gradient_size, vx_enum norm_type, vx_image output)
[Graph] Creates a Canny Edge Detection Node.
struct _vx_graph * vx_graph
An opaque reference to a graph.
Definition: vx_types.h:173
vx_node vxMedian3x3Node(vx_graph graph, vx_image input, vx_image output)
[Graph] Creates a Median Image Node.
vx_node vxAccumulateSquareImageNode(vx_graph graph, vx_image input, vx_scalar shift, vx_image accum)
[Graph] Creates an accumulate square node.
struct _vx_node * vx_node
An opaque reference to a kernel node.
Definition: vx_types.h:166
vx_node vxAndNode(vx_graph graph, vx_image in1, vx_image in2, vx_image out)
[Graph] Creates a bitwise AND node.
vx_node vxAbsDiffNode(vx_graph graph, vx_image in1, vx_image in2, vx_image out)
[Graph] Creates an AbsDiff node.
vx_node vxNotNode(vx_graph graph, vx_image input, vx_image output)
[Graph] Creates a bitwise NOT node.
vx_node vxIntegralImageNode(vx_graph graph, vx_image input, vx_image output)
[Graph] Creates an Integral Image Node.
struct _vx_matrix * vx_matrix
The Matrix Object. An MxN matrix of some unit type.
Definition: vx_types.h:207
struct _vx_scalar * vx_scalar
An opaque reference to a scalar.
Definition: vx_types.h:137
vx_node vxMeanStdDevNode(vx_graph graph, vx_image input, vx_scalar mean, vx_scalar stddev)
[Graph] Creates a mean value and standard deviation node.
vx_node vxOpticalFlowPyrLKNode(vx_graph graph, vx_pyramid old_images, vx_pyramid new_images, vx_array old_points, vx_array new_points_estimates, vx_array new_points, vx_enum termination, vx_scalar epsilon, vx_scalar num_iterations, vx_scalar use_initial_estimate, vx_size window_dimension)
[Graph] Creates a Lucas Kanade Tracking Node.
struct _vx_lut * vx_lut
The Look-Up Table (LUT) Object.
Definition: vx_types.h:194
vx_node vxConvolveNode(vx_graph graph, vx_image input, vx_convolution conv, vx_image output)
[Graph] Creates a custom convolution node.
vx_node vxHalfScaleGaussianNode(vx_graph graph, vx_image input, vx_image output, vx_int32 kernel_size)
[Graph] Performs a Gaussian Blur on an image then half-scales it.
vx_node vxScaleImageNode(vx_graph graph, vx_image src, vx_image dst, vx_enum type)
[Graph] Creates a Scale Image Node.