VXLIB_edgeTracing_i8u


Detailed Description


Functions

VXLIB_STATUS VXLIB_edgeTracing_i8u (uint8_t edgeMap[], const VXLIB_bufParams2D_t *edgeMap_addr, uint32_t edgeList[], uint32_t edgeListCapacity, uint32_t numEdgesIn, uint32_t *numEdgesOut)
VXLIB_STATUS VXLIB_edgeTracing_i8u_checkParams (uint8_t edgeMap[], const VXLIB_bufParams2D_t *edgeMap_addr, uint32_t edgeList[], uint32_t edgeListCapacity, uint32_t numEdgesIn, const uint32_t *numEdgesOut)


Function Documentation

VXLIB_STATUS VXLIB_edgeTracing_i8u ( uint8_t  edgeMap[],
const VXLIB_bufParams2D_t edgeMap_addr,
uint32_t  edgeList[],
uint32_t  edgeListCapacity,
uint32_t  numEdgesIn,
uint32_t *  numEdgesOut 
)

Description:
Promotes possible edges to strong edges if they touch strong edges. Since a possible edge can be promoted to a strong edge, the processing must consider possible edges that are touching other possible edges that are promoted to strong edges (a kind of recursive processing).
Method:
For each strong edge in the edgeList array:
  • Remove coordinate from list
  • Promote possible edges (127) that are in the 8 pixel neighborhood of the strong edge, to a strong edge (255)
  • Add the new strong edge to the list for consideration of its neighborhood
Parameters:
[in,out] edgeMap[] Pointer to array containing edge map image image (UQ8.0)
[in] edgeMap_addr[] Pointer to structure containing dimensional information of edgeMap
[in,out] edgeList[] Pointer to array containing list of strong edges This list is modified during processing such that output is not meaningful (UQ32.0)
[in] edgeListCapacity Number of entries allocated in the edgeList array
[in] numEdgesIn Number of strong edges listed in the edgeList array
[out] *numEdgesOut Number of strong edges in the edgeMap after processing is complete.
Assumptions:
  • I/O buffer pointers are assumed to be not aliased.
  • The one pixel border of edgeMap should all be 0's (non-edges) before calling this function since this function does not support border processing and may perform out of memory access if the border has any non-zeros.
    • The edgeList should also not have any indices of pixels in the one pixel border.
Performance Considerations:
  • For best performance, the following parameter settings are recommended:

VXLIB_STATUS VXLIB_edgeTracing_i8u_checkParams ( uint8_t  edgeMap[],
const VXLIB_bufParams2D_t edgeMap_addr,
uint32_t  edgeList[],
uint32_t  edgeListCapacity,
uint32_t  numEdgesIn,
const uint32_t *  numEdgesOut 
)

Description:
Checks the parameters for programming errors for the VXLIB_edgeTracing_i8u function.
Method:
The following checks are made:
  • There shall be no NULL pointers
  • edgeListCapacity shall be > numEdgesIn-8
  • The strides of each image shall be equal to or greater than the x dimension
Parameters:
[in,out] edgeMap[] Pointer to array containing edge map image image (UQ8.0)
[in] edgeMap_addr[] Pointer to structure containing dimensional information of edgeMap
[in,out] edgeList[] Pointer to array containing list of strong edges This list is modified during processing such that output is not meaningful (UQ32.0)
[in] edgeListCapacity Number of entries allocated in the edgeList array
[in] numEdgesIn Number of strong edges listed in the edgeList array
[out] *numEdgesOut Number of strong edges in the edgeMap after processing is complete.


Copyright 2020, Texas Instruments Incorporated