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.44 or later

PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU

Tc3_Vision