F_VN_MatchDescriptorsKnnBFExp

F_VN_MatchDescriptorsKnnBFExp 1:

Match descriptors (k nearest neighbors) using a brute force approach. (expert function)
Can use available TwinCAT Job Tasks for executing parallel code regions.

Syntax

Definition:

FUNCTION F_VN_MatchDescriptorsKnnBFExp : HRESULT
VAR_INPUT
    ipQueryDescriptors : ITcVnImage;
    ipTrainDescriptors : ITcVnImage;
    ipMatches          : Reference To ITcVnContainer;
    nK                 : UDINT;
    ipMask             : ITcVnImage;
    bCompactResult     : BOOL;
    eNormType          : ETcVnNormalizationType;
    bCrossCheck        : BOOL;
    hrPrev             : HRESULT;
END_VAR

F_VN_MatchDescriptorsKnnBFExp 2: Inputs

Name

Type

Description

ipQueryDescriptors

ITcVnImage

Query descriptors (i.e. descriptors of a reference/template image)

ipTrainDescriptors

ITcVnImage

Training descriptors (i.e. descriptors of a source/input image)

ipMatches

Reference To ITcVnContainer

Returns a container which is filled with the descriptor matches (ContainerType_Vector_Vector_TcVnDMatch; Non-zero interface pointers are reused.)

nK

UDINT

Number of required best train matches for each query descriptor (i.e. nk := 2)

ipMask

ITcVnImage

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

If true, matches vector does not contain entries for fully masked-out query descriptors

eNormType

ETcVnNormalizationType

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

If true, only consistent matches are returned, i.e. query->train and train->query detect the same match (only used if nK = 1)

hrPrev

HRESULT

HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.)

F_VN_MatchDescriptorsKnnBFExp 3: Return value

HRESULT

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