CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

function

Vision.Matching.RGBDPatchTracking.TrackSet

Public declarations

Explicit source declarations; dimensions, modifications and defaults are shown as written, without evaluation.

RoleNameTypeDimensions / attributes / defaultDescription
inputgrayReal[:,:]
inputreferenceDescriptorReal[:,patchSize]
inputseedsReal[size(referenceDescriptor,1),pixelDimension]
inputenabledBoolean[size(referenceDescriptor,1)]
inputsettingsSettings= Settings()
outputacceptedBoolean[size(referenceDescriptor,1)]
outputpixelsReal[size(referenceDescriptor,1),pixelDimension]
outputreasonsInteger[size(referenceDescriptor,1)]
outputiterationsInteger[size(referenceDescriptor,1)]
outputssdReal[size(referenceDescriptor,1)]
outputminimumEigenvalueReal[size(referenceDescriptor,1)]

Modelica declarations and implementation

Show parameters, interfaces and source

Parameters, inputs, outputs, defaults and equations from the source file.

function TrackSet
    input Real gray[:,:]; input Real referenceDescriptor[:,patchSize];
    input Real seeds[size(referenceDescriptor,1),pixelDimension];
    input Boolean enabled[size(referenceDescriptor,1)];
    input Settings settings = Settings();
    output Boolean accepted[size(referenceDescriptor,1)];
    output Real pixels[size(referenceDescriptor,1),pixelDimension];
    output Integer reasons[size(referenceDescriptor,1)];
    output Integer iterations[size(referenceDescriptor,1)];
    output Real ssd[size(referenceDescriptor,1)];
    output Real minimumEigenvalue[size(referenceDescriptor,1)];
  protected
    Boolean slotAccepted; Real slotPixel[pixelDimension]; Integer slotReason;
    Integer slotIterations; Real slotSsd; Real slotEigenvalue;
  algorithm
    // Slot identity and sparse enabled mask are retained across the entire extent.
    for slot in 1:size(referenceDescriptor,1) loop
      (slotAccepted,slotPixel,slotReason,slotIterations,slotSsd,slotEigenvalue)
        := Track(gray,referenceDescriptor[slot,:],seeds[slot,:],enabled[slot],settings);
      accepted[slot] := slotAccepted; pixels[slot,:] := slotPixel; reasons[slot] := slotReason;
      iterations[slot] := slotIterations; ssd[slot] := slotSsd; minimumEigenvalue[slot] := slotEigenvalue;
    end for;
  end TrackSet;