Functions
VXLIB_edgeTracing_i8u

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)
 

Detailed Description

Function Documentation

◆ VXLIB_edgeTracing_i8u()

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]edgeListCapacityNumber of entries allocated in the edgeList array
[in]numEdgesInNumber of strong edges listed in the edgeList array
[out]*numEdgesOutNumber 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_edgeTracing_i8u_checkParams()

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]edgeListCapacityNumber of entries allocated in the edgeList array
[in]numEdgesInNumber of strong edges listed in the edgeList array
[out]*numEdgesOutNumber of strong edges in the edgeMap after processing is complete.

Copyright 2022, Texas Instruments Incorporated