LocateEllipse
Locate an ellipse.
Can use available TwinCAT Job Tasks for executing parallel code regions.
Can return partial results when canceled by Watchdog.
Syntax
Definition:
HRESULT LocateEllipse(
HRESULT hrPrev,
ITcVnImage* ipSrcImage,
TcVnRotatedRectangle& stEllipse,
TcVnPoint2_REAL& aCenter,
float fSearchRadius,
ETcVnEdgeDirection eEdgeDirection,
float fMinStrength,
ULONG nMaxThickness = 10,
bool bInvertSearchDirection = false,
float fMinSearchRadius = 0,
ULONG nSubpixelsIterations = 10,
ULONG nSearchLines = 92,
float fApproxPrecision = 0.001f,
ETcVnEdgeDetectionAlgorithm eAlgorithm = EDA_INTERPOLATION,
ITcVnContainer** pipContourPoints = nullptr
)
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) | |
stEllipse |
|
Returns the detected ellipse | |
aCenter |
|
The expected ellipse center | |
fSearchRadius |
float |
|
Radius around aCenter to search for edges |
eEdgeDirection |
|
Specification of the edge direction to search for (from center to outside ellipse or other way round, if bInvertSearchDirection is true) | |
fMinStrength |
float |
|
Specification of the minimum strength (intensity difference) of the edge to search for |
nMaxThickness |
ULONG |
10 |
Specification of the maximum thickness of the edge to search for, which means fMinStrength must be reached within nMaxThickness pixels |
bInvertSearchDirection |
bool |
false |
If true, the search starts from outside the ellipse in direction of the center |
fMinSearchRadius |
float |
0 |
Radius around aCenter to skip before starting to search for edges (e.g. to save time or if the center contains edges that should be ignored) |
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) |
nSearchLines |
ULONG |
92 |
Specifies the amount of search lines, which are equally distributed in all directions (must be >= 8 and a multiple of 4) |
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 | |
pipContourPoints |
nullptr |
Returns the subpixel accurate ellipse contour (optional, set to 0 if not required; ContainerType_Vector_TcVnPoint2_REAL; Non-zero interface pointers are reused.) |
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 |