MatchDescriptorsKnnBF
Match descriptors (k nearest neighbors) using a brute force approach.
Can use available TwinCAT Job Tasks for executing parallel code regions.
Syntax
Definition:
HRESULT MatchDescriptorsKnnBF(
HRESULT hrPrev,
ITcVnImage* ipQueryDescriptors,
ITcVnImage* ipTrainDescriptors,
ITcVnContainer*& ipMatches,
ULONG nK,
ITcVnImage* ipMask = nullptr,
bool bCompactResult = false,
ETcVnNormalizationType eNormType = NT_L2,
bool bCrossCheck = false
)
Parameters
Name |
Type |
Default |
Description |
---|---|---|---|
hrPrev |
|
HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.) | |
ipQueryDescriptors |
|
Query descriptors (i.e. descriptors of a reference/template image) | |
ipTrainDescriptors |
|
Training descriptors (i.e. descriptors of a source/input image) | |
ipMatches |
|
Returns a container which is filled with the descriptor matches (ContainerType_Vector_Vector_TcVnDMatch; Non-zero interface pointers are reused.) | |
nK |
ULONG |
|
Number of required best train matches for each query descriptor (i.e. nk := 2) |
ipMask |
nullptr |
Mask to specify permissable matches, i.e. query[i] can be matched with train[j] only if mask[i][j] != 0 (set to 0 if no mask required) | |
bCompactResult |
bool |
false |
If true, matches vector does not contain entries for fully masked-out query descriptors |
eNormType |
NT_L2 |
Normalization type (only L1, L2, L2SQR, HAMMING, HAMMING2 supported). HAMMING2 should be used for ORB descriptors if the ORB nBriefPoints parameter is 3 or 4) | |
bCrossCheck |
bool |
false |
If true, only consistent matches are returned, i.e. query->train and train->query detect the same match (only used if nK = 1) |
Required License
TC3 Vision Matching
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 |