The OpenVX Specification  r28647
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
vxu.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_UTILITY_H_
25 #define _OPENVX_UTILITY_H_
26 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
46 VX_API vx_status vxuColorConvert(vx_context context, vx_image input, vx_image output);
47 
58 VX_API vx_status vxuChannelExtract(vx_context context, vx_image input, vx_enum channel, vx_image output);
59 
72 VX_API vx_status vxuChannelCombine(vx_context context, vx_image plane0, vx_image plane1, vx_image plane2, vx_image plane3, vx_image output);
73 
84 VX_API vx_status vxuSobel3x3(vx_context context, vx_image input, vx_image output_x, vx_image output_y);
85 
96 VX_API vx_status vxuMagnitude(vx_context context, vx_image grad_x, vx_image grad_y, vx_image output);
97 
108 VX_API vx_status vxuPhase(vx_context context, vx_image grad_x, vx_image grad_y, vx_image output);
109 
120 VX_API vx_status vxuScaleImage(vx_context context, vx_image src, vx_image dst, vx_enum type);
121 
132 VX_API vx_status vxuTableLookup(vx_context context, vx_image input, vx_lut lut, vx_image output);
133 
143 VX_API vx_status vxuHistogram(vx_context context, vx_image input, vx_distribution distribution);
144 
154 VX_API vx_status vxuEqualizeHist(vx_context context, vx_image input, vx_image output);
155 
166 VX_API vx_status vxuAbsDiff(vx_context context, vx_image in1, vx_image in2, vx_image out);
167 
178 VX_API vx_status vxuMeanStdDev(vx_context context, vx_image input, vx_float32 *mean, vx_float32 *stddev);
179 
191 VX_API vx_status vxuThreshold(vx_context context, vx_image input, vx_threshold thresh, vx_image output);
192 
202 VX_API vx_status vxuIntegralImage(vx_context context, vx_image input, vx_image output);
203 
213 VX_API vx_status vxuErode3x3(vx_context context, vx_image input, vx_image output);
214 
224 VX_API vx_status vxuDilate3x3(vx_context context, vx_image input, vx_image output);
225 
235 VX_API vx_status vxuMedian3x3(vx_context context, vx_image input, vx_image output);
236 
246 VX_API vx_status vxuBox3x3(vx_context context, vx_image input, vx_image output);
247 
257 VX_API vx_status vxuGaussian3x3(vx_context context, vx_image input, vx_image output);
258 
270 VX_API vx_status vxuConvolve(vx_context context, vx_image input, vx_convolution matrix, vx_image output);
271 
281 VX_API vx_status vxuGaussianPyramid(vx_context context, vx_image input, vx_pyramid gaussian);
282 
292 VX_API vx_status vxuAccumulateImage(vx_context context, vx_image input, vx_image accum);
293 
304 VX_API vx_status vxuAccumulateWeightedImage(vx_context context, vx_image input, vx_scalar scale, vx_image accum);
305 
316 VX_API vx_status vxuAccumulateSquareImage(vx_context context, vx_image input, vx_scalar shift, vx_image accum);
317 
332 VX_API vx_status vxuMinMaxLoc(vx_context context, vx_image input,
333  vx_scalar minVal, vx_scalar maxVal,
334  vx_array minLoc, vx_array maxLoc,
335  vx_scalar minCount, vx_scalar maxCount);
336 
348 VX_API vx_status vxuConvertDepth(vx_context context, vx_image input, vx_image output, vx_enum policy, vx_int32 shift);
349 
363  vx_int32 gradient_size, vx_enum norm_type,
364  vx_image output);
365 
376 VX_API vx_status vxuHalfScaleGaussian(vx_context context, vx_image input, vx_image output, vx_int32 kernel_size);
377 
388 VX_API vx_status vxuAnd(vx_context context, vx_image in1, vx_image in2, vx_image out);
389 
400 VX_API vx_status vxuOr(vx_context context, vx_image in1, vx_image in2, vx_image out);
401 
412 VX_API vx_status vxuXor(vx_context context, vx_image in1, vx_image in2, vx_image out);
413 
423 VX_API vx_status vxuNot(vx_context context, vx_image input, vx_image output);
424 
438 VX_API vx_status vxuMultiply(vx_context context, vx_image in1, vx_image in2, vx_float32 scale, vx_enum overflow_policy, vx_enum rounding_policy, vx_image out);
439 
451 VX_API vx_status vxuAdd(vx_context context, vx_image in1, vx_image in2, vx_enum policy, vx_image out);
452 
464 VX_API vx_status vxuSubtract(vx_context context, vx_image in1, vx_image in2, vx_enum policy, vx_image out);
465 
478 VX_API vx_status vxuWarpAffine(vx_context context, vx_image input, vx_matrix matrix, vx_enum type, vx_image output);
479 
492 VX_API vx_status vxuWarpPerspective(vx_context context, vx_image input, vx_matrix matrix, vx_enum type, vx_image output);
493 
511 VX_API vx_status vxuHarrisCorners(vx_context context,
512  vx_image input,
513  vx_scalar strength_thresh,
514  vx_scalar min_distance,
515  vx_scalar sensitivity,
516  vx_int32 gradient_size,
517  vx_int32 block_size,
518  vx_array corners,
519  vx_scalar num_corners);
520 
521 
535 VX_API vx_status vxuFastCorners(vx_context context, vx_image input, vx_scalar strength_thresh, vx_bool nonmax_suppression, vx_array corners, vx_scalar num_corners);
536 
561  vx_pyramid old_images,
562  vx_pyramid new_images,
563  vx_array old_points,
564  vx_array new_points_estimates,
565  vx_array new_points,
566  vx_enum termination,
567  vx_scalar epsilon,
568  vx_scalar num_iterations,
569  vx_scalar use_initial_estimate,
570  vx_size window_dimension);
571 
582 VX_API vx_status vxuRemap(vx_context context,
583  vx_image input,
584  vx_remap table,
585  vx_enum policy,
586  vx_image output);
587 
588 #ifdef __cplusplus
589 }
590 #endif
591 
592 #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_status vxuWarpPerspective(vx_context context, vx_image input, vx_matrix matrix, vx_enum type, vx_image output)
[Immediate] Performs an Perspective warp on an image.
vx_status vxuMagnitude(vx_context context, vx_image grad_x, vx_image grad_y, vx_image output)
[Immediate] Invokes an immediate Magnitude.
vx_status vxuOr(vx_context context, vx_image in1, vx_image in2, vx_image out)
[Immediate] Computes the bitwise inclusive-or between two images.
vx_status vxuHalfScaleGaussian(vx_context context, vx_image input, vx_image output, vx_int32 kernel_size)
[Immediate] Performs a Gaussian Blur on an image then half-scales it.
struct _vx_array * vx_array
The Array Object. Array is a strongly-typed container for other data structures.
Definition: vx_types.h:237
vx_status vxuPhase(vx_context context, vx_image grad_x, vx_image grad_y, vx_image output)
[Immediate] Invokes an immediate Phase.
size_t vx_size
A wrapper of size_t to keep the naming convention uniform.
Definition: vx_types.h:124
vx_status vxuSobel3x3(vx_context context, vx_image input, vx_image output_x, vx_image output_y)
[Immediate] Invokes an immediate Sobel 3x3.
vx_status vxuIntegralImage(vx_context context, vx_image input, vx_image output)
[Immediate] Computes the integral image of the input.
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_status vxuScaleImage(vx_context context, vx_image src, vx_image dst, vx_enum type)
[Immediate] Scales an input image to an output image.
vx_status vxuChannelCombine(vx_context context, vx_image plane0, vx_image plane1, vx_image plane2, vx_image plane3, vx_image output)
[Immediate] Invokes an immediate Channel Combine.
vx_status vxuRemap(vx_context context, vx_image input, vx_remap table, vx_enum policy, vx_image output)
[Immediate] Remaps an output image from an input image.
float vx_float32
A 32-bit float value.
Definition: vx_types.h:96
vx_enum vx_status
A formal status type with known fixed size.
Definition: vx_types.h:365
struct _vx_context * vx_context
An opaque reference to the implementation context.
Definition: vx_types.h:180
vx_status vxuEqualizeHist(vx_context context, vx_image input, vx_image output)
[Immediate] Equalizes the Histogram of a grayscale image.
vx_status vxuConvolve(vx_context context, vx_image input, vx_convolution matrix, vx_image output)
[Immediate] Computes a convolution on the input image with the supplied matrix.
vx_status vxuHistogram(vx_context context, vx_image input, vx_distribution distribution)
[Immediate] Generates a distribution from an image.
vx_status vxuXor(vx_context context, vx_image in1, vx_image in2, vx_image out)
[Immediate] Computes the bitwise exclusive-or between two images.
vx_status vxuMeanStdDev(vx_context context, vx_image input, vx_float32 *mean, vx_float32 *stddev)
[Immediate] Computes the mean value and standard deviation.
vx_status vxuConvertDepth(vx_context context, vx_image input, vx_image output, vx_enum policy, vx_int32 shift)
[Immediate] Converts the input images bit-depth into the output image.
vx_status vxuSubtract(vx_context context, vx_image in1, vx_image in2, vx_enum policy, vx_image out)
[Immediate] Performs arithmetic subtraction on pixel values in the input images.
vx_status vxuMedian3x3(vx_context context, vx_image input, vx_image output)
[Immediate] Computes a median filter on the image by a 3x3 window.
vx_status vxuAbsDiff(vx_context context, vx_image in1, vx_image in2, vx_image out)
[Immediate] Computes the absolute difference between two images.
vx_status vxuGaussianPyramid(vx_context context, vx_image input, vx_pyramid gaussian)
[Immediate] Computes a Gaussian pyramid from an input image.
vx_status vxuMultiply(vx_context context, vx_image in1, vx_image in2, vx_float32 scale, vx_enum overflow_policy, vx_enum rounding_policy, vx_image out)
[Immediate] Performs elementwise multiplications on pixel values in the input images and a scale...
vx_status vxuFastCorners(vx_context context, vx_image input, vx_scalar strength_thresh, vx_bool nonmax_suppression, vx_array corners, vx_scalar num_corners)
[Immediate] Computes corners on an image using FAST algorithm and produces the array of feature point...
vx_status vxuCannyEdgeDetector(vx_context context, vx_image input, vx_threshold hyst, vx_int32 gradient_size, vx_enum norm_type, vx_image output)
[Immediate] Computes Canny Edges on the input image into the output image.
vx_status vxuAdd(vx_context context, vx_image in1, vx_image in2, vx_enum policy, vx_image out)
[Immediate] Performs arithmetic addition on pixel values in the input images.
struct _vx_pyramid * vx_pyramid
The Image Pyramid object. A set of scaled images.
Definition: vx_types.h:213
vx_status vxuAccumulateWeightedImage(vx_context context, vx_image input, vx_scalar scale, vx_image accum)
[Immediate] Computes a weighted accumulation.
vx_status vxuGaussian3x3(vx_context context, vx_image input, vx_image output)
[Immediate] Computes a gaussian filter on the image by a 3x3 window.
vx_status vxuMinMaxLoc(vx_context context, vx_image input, vx_scalar minVal, vx_scalar maxVal, vx_array minLoc, vx_array maxLoc, vx_scalar minCount, vx_scalar maxCount)
[Immediate] Computes the minimum and maximum values of the image.
vx_status vxuColorConvert(vx_context context, vx_image input, vx_image output)
[Immediate] Invokes an immediate Color Conversion.
vx_status vxuErode3x3(vx_context context, vx_image input, vx_image output)
[Immediate] Erodes an image by a 3x3 window.
vx_status vxuWarpAffine(vx_context context, vx_image input, vx_matrix matrix, vx_enum type, vx_image output)
[Immediate] Performs an Affine warp on an image.
vx_status vxuAccumulateImage(vx_context context, vx_image input, vx_image accum)
[Immediate] Computes an accumulation.
vx_status vxuTableLookup(vx_context context, vx_image input, vx_lut lut, vx_image output)
[Immediate] Processes the image through the LUT.
struct _vx_convolution * vx_convolution
The Convolution Object. A user-defined convolution kernel of MxM elements.
Definition: vx_types.h:226
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_status vxuAccumulateSquareImage(vx_context context, vx_image input, vx_scalar shift, vx_image accum)
[Immediate] Computes a squared accumulation.
vx_status vxuOpticalFlowPyrLK(vx_context context, 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)
[Immediate] Computes an optical flow on two images.
vx_status vxuHarrisCorners(vx_context context, 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)
[Immediate] Computes the Harris Corners over an image and produces the array of scored points...
vx_status vxuChannelExtract(vx_context context, vx_image input, vx_enum channel, vx_image output)
[Immediate] Invokes an immediate Channel Extract.
vx_status vxuDilate3x3(vx_context context, vx_image input, vx_image output)
[Immediate] Dilates an image by a 3x3 window.
vx_status vxuThreshold(vx_context context, vx_image input, vx_threshold thresh, vx_image output)
[Immediate] Threshold's an input image and produces a VX_DF_IMAGE_U8 * boolean image.
vx_status vxuAnd(vx_context context, vx_image in1, vx_image in2, vx_image out)
[Immediate] Computes the bitwise and between two images.
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
struct _vx_lut * vx_lut
The Look-Up Table (LUT) Object.
Definition: vx_types.h:194
vx_status vxuBox3x3(vx_context context, vx_image input, vx_image output)
[Immediate] Computes a box filter on the image by a 3x3 window.
vx_status vxuNot(vx_context context, vx_image input, vx_image output)
[Immediate] Computes the bitwise not of an image.