Data Layer Reference

Complete node listing. All paths start with:

hdvisionsystems/lumiscan-template-finder/

Address pattern

hdvisionsystems/lumiscan-template-finder/
├── system/                              application-wide management
│   ├── modules
│   ├── template-dir                     the one directory templates live in
│   ├── templates                        what is in it
│   ├── set-template-dir/
│   ├── create-template/                 application-wide, not per module
│   ├── create-module/
│   ├── remove-module/
│   ├── save-current-modules/
│   └── save-module-inputs/
└── <module-id>/                         one per configured instance, e.g. module-1
    └── find-template/
        ├── execute
        ├── input/...
        └── output/{result, status-code, status-text}

Every operation has execute, output/status-code and output/status-text. Anything else under output/ is present only where the operation has more to report.

A fresh installation serves one module, module-1, and more can be created at runtime. One licence covers ten modules. See Module Management.

system

Node Type Description

system/modules

string array

The modules that currently exist

system/template-dir

string

Directory every module reads templates from and writes them to, relative to the configuration directory. Read-only - change it with set-template-dir

system/templates

string array

Templates available in that directory, without the .png extension. Read-only

system/set-template-dir/execute

method

Point the application at another template directory

system/set-template-dir/input/template-dir

string

Directory to switch to. It must already exist

system/create-template/execute

method

Cut a template out of a live image and save it into template-dir. Application-wide: the template is usable by every module. Its inputs and outputs are listed under system/create-template

system/create-module/execute

method

Create a module and its node subtree

system/create-module/input/module-id

string

Name of the module to create

system/remove-module/execute

method

Remove a module and its node subtree

system/remove-module/input/module-id

string

Name of the module to remove

system/save-current-modules/execute

method

Persist the module list, so the same modules return after a restart

system/save-module-inputs/execute

method

Persist one module’s inputs

system/save-module-inputs/input/module-id

string

Module whose inputs to persist

<module-id>/find-template

Inputs

Node Type Default Description

input/input-image-address

string

(empty)

Address of the image node to search

input/template-name

string

(empty)

Template to search for, as listed on system/templates. .png is appended when no extension is given

input/crop/startX

uint16

0

Left edge of the region to search, pixels

input/crop/startY

uint16

0

Top edge of the region to search, pixels

input/crop/width

uint16

0

Width of the region. 0 reaches the right edge

input/crop/height

uint16

0

Height of the region. 0 reaches the bottom edge

input/result-coordinate

string

IMAGE

IMAGE or CROP: which image the positions in the result are measured against

input/scale/min-scale

double

1.0

Smallest scaling factor

input/scale/max-scale

double

1.0

Largest scaling factor

input/scale/step-scale

double

1.0

Increment between scales

input/rotation/min-rot

double

0.0

Smallest rotation, degrees

input/rotation/max-rot

double

0.0

Largest rotation, degrees

input/rotation/step-rot

double

1.0

Increment between rotations, degrees

input/match-thresh

double

0.9

Minimum acceptable score, 0-1

input/match-mode

string

TM_SQDIFF_NORMED

Matching algorithm

input/use-grayscale

bool

true

Match on grayscale

input/preprocess/blur-sigma-x

double

1.0

Blur strength in X; 0 or less disables

input/preprocess/blur-sigma-y

double

0.0

Blur strength in Y; 0 means same as X

input/preprocess/blur-kernel-size-x

uint32

0

Blur kernel width; 0 derives from strength

input/preprocess/blur-kernel-size-y

uint32

0

Blur kernel height; 0 derives from strength

input/preprocess/bin-size

int32

1

Downsample factor; 1 disables

Outputs

Node Type Description

output/result

flatbuffer

Matches, sorted by confidence

output/status-code

int16

Execution status

output/status-text

string

Outcome in words

system/create-template

Inputs

Node Type Default Description

input/input-image-address

string

(empty)

Address of the image node to cut from

input/crop/startX

int32

0

Left edge of the region, pixels

input/crop/startY

int32

0

Top edge of the region, pixels

input/crop/width

int32

0

Width of the region, pixels

input/crop/height

int32

0

Height of the region, pixels

input/template-name

string

(empty)

Name to save under, inside system/template-dir. Use lower case: only lower case .png files are listed

Outputs

Node Type Description

output/template-path

string

Path of the written file, relative to the configuration directory

output/status-code

int16

Execution status

output/status-text

string

Outcome in words

Result flatbuffer

output/result is a hdv.template_match.Result:

Field Type Description

matches

array of Match

One entry per occurrence, sorted by confidence

best_index

ulong

Index of the best match; always 0

best_score

float

Confidence of the best match; 0.0 if none

template_name

string

Template used

match_mode

string

Algorithm used

match_thresh

float

Threshold applied

image_width

uint

Width of the searched image

image_height

uint

Height of the searched image

timestamp

ulong

Microseconds since the epoch

Match:

Field Type Description

oriented_bounding_box

struct

center_x, center_y, width, height in pixels; angle in degrees

confidence

float

Score, 0-1

scale

float

Scaling factor of this match

rotation

float

Rotation of this match, degrees

Image node expected at input-image-address

The address must name an image node of another application on the same ctrlX CORE, providing:

Child Type Description

data

array of uint8

Raw pixel data

width

uint64

Width in pixels

height

uint64

Height in pixels

pixel-type

string

GenICam pixel format name

An address inside this application is rejected with status code -2.

Status codes

See Execution Status for the full table. Negative is always an error; 0 means not yet run; positive means success.