The OpenVX Specification
r28647
|
Defines the Image Pyramid Object Interface.
A Pyramid object in OpenVX represents a collection of related images. Typically, these images are created by either downscaling or upscaling a base image, contained in level zero of the pyramid. Successive levels of the pyramid increase or decrease in size by a factor given by the VX_PYRAMID_ATTRIBUTE_SCALE
attribute. For instance, in a pyramid with 3 levels and VX_SCALE_PYRAMID_HALF
, the level one image is one-half the width and one-half the height of the level zero image, and the level two image is one-quarter the width and one quarter the height of the level zero image. When downscaling or upscaling results in a non-integral number of pixels at any level, fractional pixels always get rounded up to the nearest integer. (E.g., a 3-level image pyramid beginning with level zero having a width of 9 and a scaling of VX_SCALE_PYRAMID_HALF
results in the level one image with a width of \( 5 = \mathbf{ceil}(9*0.5) \) and a level two image with a width of \( 3 = \mathbf{ceil}(5*0.5) \). Position \( (r_N,c_N) \) at level \( N \) corresponds to position \( (r_{N-1}/\mathbf{scale}, c_{N-1}/\mathbf{scale}) \) at level \( N-1 \).
Macros | |
#define | VX_SCALE_PYRAMID_HALF (0.5f) |
Use to indicate a half-scale pyramid. | |
#define | VX_SCALE_PYRAMID_ORB ((vx_float32)0.8408964f) |
Use to indicate a ORB scaled pyramid whose scaling factor is \( \frac{1}{\root 4 \of {2}} \). | |
Typedefs | |
typedef struct _vx_pyramid * | vx_pyramid |
The Image Pyramid object. A set of scaled images. | |
Enumerations | |
enum | vx_pyramid_attribute_e { VX_PYRAMID_ATTRIBUTE_LEVELS = ((( VX_ID_KHRONOS ) << 20) | ( VX_TYPE_PYRAMID << 8)) + 0x0, VX_PYRAMID_ATTRIBUTE_SCALE = ((( VX_ID_KHRONOS ) << 20) | ( VX_TYPE_PYRAMID << 8)) + 0x1, VX_PYRAMID_ATTRIBUTE_WIDTH = ((( VX_ID_KHRONOS ) << 20) | ( VX_TYPE_PYRAMID << 8)) + 0x2, VX_PYRAMID_ATTRIBUTE_HEIGHT = ((( VX_ID_KHRONOS ) << 20) | ( VX_TYPE_PYRAMID << 8)) + 0x3, VX_PYRAMID_ATTRIBUTE_FORMAT = ((( VX_ID_KHRONOS ) << 20) | ( VX_TYPE_PYRAMID << 8)) + 0x4 } |
The pyramid object attributes. More... | |
Functions | |
vx_pyramid | vxCreatePyramid (vx_context context, vx_size levels, vx_float32 scale, vx_uint32 width, vx_uint32 height, vx_df_image format) |
Creates a reference to a pyramid object of the supplied number of levels. More... | |
vx_pyramid | vxCreateVirtualPyramid (vx_graph graph, vx_size levels, vx_float32 scale, vx_uint32 width, vx_uint32 height, vx_df_image format) |
Creates a reference to a virtual pyramid object of the supplied number of levels. More... | |
vx_image | vxGetPyramidLevel (vx_pyramid pyr, vx_uint32 index) |
Retrieves a level of the pyramid as a vx_image , which can be used elsewhere in OpenVX. More... | |
vx_status | vxQueryPyramid (vx_pyramid pyr, vx_enum attribute, void *ptr, vx_size size) |
Queries an attribute from an image pyramid. More... | |
vx_status | vxReleasePyramid (vx_pyramid *pyr) |
Releases a reference to a pyramid object. The object may not be garbage collected until its total reference count is zero. More... | |
The pyramid object attributes.
Enumerator | |
---|---|
VX_PYRAMID_ATTRIBUTE_LEVELS |
The number of levels of the pyramid. Use a |
VX_PYRAMID_ATTRIBUTE_SCALE |
The scale factor between each level of the pyramid. Use a |
VX_PYRAMID_ATTRIBUTE_WIDTH |
The width of the 0th image in pixels. Use a |
VX_PYRAMID_ATTRIBUTE_HEIGHT |
The height of the 0th image in pixels. Use a |
VX_PYRAMID_ATTRIBUTE_FORMAT |
The |
Definition at line 898 of file vx_types.h.
vx_pyramid vxCreatePyramid | ( | vx_context | context, |
vx_size | levels, | ||
vx_float32 | scale, | ||
vx_uint32 | width, | ||
vx_uint32 | height, | ||
vx_df_image | format | ||
) |
Creates a reference to a pyramid object of the supplied number of levels.
[in] | context | The reference to the overall context. |
[in] | levels | The number of levels desired. This is required to be a non-zero value. |
[in] | scale | Used to indicate the scale between pyramid levels. This is required to be a non-zero positive value. In OpenVX 1.0, the only permissible values are VX_SCALE_PYRAMID_HALF or VX_SCALE_PYRAMID_ORB . |
[in] | width | The width of the 0th level image in pixels. |
[in] | height | The height of the 0th level image in pixels. |
[in] | format | The format of all images in the pyramid. |
vx_pyramid
0 | No pyramid was created. |
* | A pyramid reference. |
vx_pyramid vxCreateVirtualPyramid | ( | vx_graph | graph, |
vx_size | levels, | ||
vx_float32 | scale, | ||
vx_uint32 | width, | ||
vx_uint32 | height, | ||
vx_df_image | format | ||
) |
Creates a reference to a virtual pyramid object of the supplied number of levels.
Virtual Pyramids can be used to connect Nodes together when the contents of the pyramids will not be accessed by the user of the API. All of the following constructions are valid:
[in] | graph | The reference to the parent graph. |
[in] | levels | The number of levels desired. This is required to be a non-zero value. |
[in] | scale | Used to indicate the scale between pyramid levels. This is required to be a non-zero positive value. In OpenVX 1.0, the only permissible values are VX_SCALE_PYRAMID_HALF or VX_SCALE_PYRAMID_ORB . |
[in] | width | The width of the 0th level image in pixels. This may be set to zero to indicate to the interface that the value is unspecified. |
[in] | height | The height of the 0th level image in pixels. This may be set to zero to indicate to the interface that the value is unspecified. |
[in] | format | The format of all images in the pyramid. This may be set to VX_DF_IMAGE_VIRT to indicate that the format is unspecified. |
vx_pyramid
reference. vxGetPyramidLevel
behave as Virtual Images and cause vxAccessImagePatch
to return errors. 0 | No pyramid was created. |
* | A pyramid reference. |
vx_status vxReleasePyramid | ( | vx_pyramid * | pyr | ) |
Releases a reference to a pyramid object. The object may not be garbage collected until its total reference count is zero.
[in] | pyr | The pointer to the pyramid to release. |
vx_status_e
enumeration. VX_SUCCESS | No errors. |
VX_ERROR_INVALID_REFERENCE | If graph is not a vx_graph . |
vx_status vxQueryPyramid | ( | vx_pyramid | pyr, |
vx_enum | attribute, | ||
void * | ptr, | ||
vx_size | size | ||
) |
Queries an attribute from an image pyramid.
[in] | pyr | The pyramid to query. |
[in] | attribute | The attribute for which to query. Use a vx_pyramid_attribute_e enumeration. |
[out] | ptr | The location at which to store the resulting value. |
[in] | size | The size of the container to which ptr points. |
vx_status_e
enumeration. vx_image vxGetPyramidLevel | ( | vx_pyramid | pyr, |
vx_uint32 | index | ||
) |