LocateEdges
Locate the points of multiple occuring edges inside a specified search window with subpixel accuracy.
Can use available TwinCAT Job Tasks for executing parallel code regions.
Can return partial results when canceled by Watchdog.
Syntax
Definition:
HRESULT LocateEdges(
HRESULT hrPrev,
ITcVnImage* ipSrcImage,
ITcVnContainer*& ipEdgePoints,
TcVnPoint2_REAL& aStartPoint,
TcVnPoint2_REAL& aEndPoint,
ULONG nNumEdges,
ETcVnEdgeDirection eEdgeDirection,
bool bAlternateDirection,
float fMinStrength,
ULONG nSearchLines,
float& fAvgStrength,
float fSearchLineDist = 1,
ULONG nMaxThickness = 10,
ULONG nSubpixelsIterations = 10,
float fApproxPrecision = 0.001f,
ETcVnEdgeDetectionAlgorithm eAlgorithm = EDA_INTERPOLATION
)
Parameters
Name |
Type |
Default |
Description |
---|---|---|---|
hrPrev |
|
HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.) | |
ipSrcImage |
|
Source image (1 channel) | |
ipEdgePoints |
|
Returns the detected edge points (ContainerType_Vector_Vector_TcVnPoint2_REAL) | |
aStartPoint |
|
Position from which to start the search process (in the direction of aEndPoint) | |
aEndPoint |
|
Position where the search process ends | |
nNumEdges |
ULONG |
|
The (maximum) number of edges to search for |
eEdgeDirection |
|
Specification of the edge direction to search for | |
bAlternateDirection |
bool |
|
If true, eEdgeDirection is alternated after each detected edge. Else, only edges with eEdgeDirection are searched for. |
fMinStrength |
float |
|
Specification of the minimum strength (intensity difference) of the edge to search for |
nSearchLines |
ULONG |
|
Width of the search window, i.e. the number of search lines (1, 3, 5, 7, ...), centered around the line specified by aStartPoint and aEndPoint |
fAvgStrength |
float& |
|
Returns the average strength of the detected edges |
fSearchLineDist |
float |
1 |
Distance between the search lines in pixels (> 0) |
nMaxThickness |
ULONG |
10 |
Specification of the maximum thickness of the edge to search for, which means fMinStrength must be reached within nMaxThickness pixels |
nSubpixelsIterations |
ULONG |
10 |
Specifies the number of subpixels (for INTERPOLATION, 10 - 20 usually is sufficient) or maximum number of iterations for optimizing the parameters (for APPROX_ERF and APPROX_GAUSSIAN, 50 - 100 usually is sufficient) |
fApproxPrecision |
float |
0.001f |
Specifies the approximation precision for APPROX_ERF and APPROX_GAUSSIAN (0.001 usually is sufficient, unused for INTERPOLATION) |
eAlgorithm |
EDA_INTERPOLATION |
Selection of the edge detection algorithm |
Required License
TC3 Vision Metrology 2D
System Requirements
Development environment | Target platform | PLC libraries to include |
---|---|---|
TwinCAT V3.1.4024.54 or later | PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU | Tc3_Vision |