Point Tracker
Point Tracker operator properties for Script Engine. Tracks a coloured point across frames and reports its position, while also measuring brightness in a separate sensor area. Useful for stabilising a camera feed against small drift, automatically nudging a layer to compensate for camera shake, monitoring a calibration marker on a stage to detect that the camera has been bumped, watching exposure on a known reference area to detect lighting changes, and storing a reference position/luminance for later comparison. Pick a colour and starting position, then use the auto-correct features to keep the layer locked on the marker.
| Property | Type | Access | Description |
|---|---|---|---|
PickKeyColorCommand |
Command |
get |
Open the colour-picker overlay so the marker can be sampled directly from the live image. Click on the marker in the preview to set both its colour and its starting position in one step. |
BeaconColor |
AdvancedColorPicker |
get/set |
Colour of the marker the tracker is locked onto. Pick a saturated, distinctive colour for best results. Use the pick command rather than entering values by hand. |
Red |
int |
get/set |
Red channel of the picked colour. [min=0, max=255]. Internal storage for the legacy colour picker. Use BeaconColor instead. |
Green |
int |
get/set |
Green channel of the picked colour. [min=0, max=255]. Internal storage for the legacy colour picker. Use BeaconColor instead. |
Blue |
int |
get/set |
Blue channel of the picked colour. [min=0, max=255]. Internal storage for the legacy colour picker. Use BeaconColor instead. |
Alpha |
int |
get/set |
Alpha channel of the picked colour. [min=0, max=255]. Internal storage for the legacy colour picker. Use BeaconColor instead. |
ScanAreaCenterX |
int |
get/set |
Centre X of the search area, in pixels. Where the tracker starts looking. Set automatically when the marker is picked from the preview. |
ScanAreaCenterY |
int |
get/set |
Centre Y of the search area, in pixels. Where the tracker starts looking. Set automatically when the marker is picked from the preview. |
ScanAreaSize |
BeaconScanAreaSize |
get/set |
Size of the box the tracker searches inside. [default=100x100 pixels]. Smaller boxes are faster and ignore distractions further away, but the marker must stay within the box. Larger boxes cope with faster movement at the cost of catching unrelated colour. |
Tolerance |
int |
get/set |
How forgiving the colour match is. [min=0, max=300, default=300]. Higher values accept more variation in hue/saturation. Lower values demand a closer match. If the tracker grabs onto the wrong objects, lower this; if it loses the marker under changing lighting, raise it. |
MinimumPixelCount |
int |
get/set |
Minimum number of matching pixels needed before the tracker considers the marker found. [min=1, max=10000, default=24]. Raise to ignore tiny patches of stray colour. Lower to detect very small markers in distant shots. |
MinX |
int |
get |
Left edge of the bounding box around the matched pixels (read-only). |
MinY |
int |
get |
Top edge of the bounding box around the matched pixels (read-only). |
MaxX |
int |
get |
Right edge of the bounding box around the matched pixels (read-only). |
MaxY |
int |
get |
Bottom edge of the bounding box around the matched pixels (read-only). |
TrackerOutput |
TrackerOutput |
get/set |
What the operator draws on the output image. [default=Input]. Input passes the image through unchanged. Detected pixels highlights matched pixels. Tracker area outlines the search box. Center point shows a crosshair on the detected centre. Use Detected pixels or Tracker area while tuning, then switch to Input for production. |
MatchingPixels |
int |
get |
How many pixels in this frame matched the marker colour (read-only). Compare against MinimumPixelCount to understand whether Found will be true. |
Found |
bool |
get |
True when enough matching pixels were found this frame (read-only). The recommended trigger flag for scripts. Watch this to detect that the marker is currently visible. |
PointCenterX |
float |
get |
Centre X of the detected marker, in pixels (read-only). |
PointCenterY |
float |
get |
Centre Y of the detected marker, in pixels (read-only). |
StorePositionCommand |
Command |
get |
Store the current detected centre as a reference position. Run this once after framing the shot. The tracker then reports drift relative to that stored position and can auto-correct it via Move Layer Automatically. |
StoredBeaconPosX |
float |
get/set |
The reference X position saved by Store Position. Used as the baseline that Position Change values are measured against. |
StoredBeaconPosY |
float |
get/set |
The reference Y position saved by Store Position. Used as the baseline that Position Change values are measured against. |
StoragePropertyName |
string |
get/set |
Name used to share the position with other operators via shared application settings. Defaults to the operator name. Change to coordinate multiple trackers or to expose the value to scripts under a known key. |
StoredDateTime |
DateTime |
get/set |
When the reference position was last saved. Useful for warning operators that calibration is stale. |
PositionChangeX |
float |
get |
Horizontal drift from the stored reference position, in pixels (read-only). Positive means the marker has moved right, negative means left. |
PositionChangeY |
float |
get |
Vertical drift from the stored reference position, in pixels (read-only). Positive means the marker has moved down, negative means up. |
PositionChangeXAvg |
float |
get |
Horizontal drift averaged across the last 10 frames (read-only). Smoother than the instantaneous value — recommended for layer correction. |
PositionChangeYAvg |
float |
get |
Vertical drift averaged across the last 10 frames (read-only). Smoother than the instantaneous value — recommended for layer correction. |
MoveLayerAutomation |
MoveLayerAutomation |
get/set |
How the layer is moved to compensate for marker drift. [default=None]. None means the operator only reports values. Yes, use instant values reacts immediately and may look jittery. Yes, use average values (10 frames) is smoother and recommended for live use. |
MoveLayerFallback |
MoveLayerFallback |
get/set |
What to do when the marker can't be detected. [default=Restore to default]. Restore to default snaps the layer back to its untracked position. Keep last correction holds the most recent correction in place — better when brief drop-outs are expected. |
ShowLuminanceSensorArea |
bool |
get/set |
Outline the luminance sensor rectangle on the output image. [default=false]. Useful while positioning the sensor area. Turn off in production unless this visualisation is wanted. |
LumaAreaLeft |
int |
get/set |
Left edge of the luminance sensor rectangle, in pixels. [min=0, max=3840, default=auto]. Place the sensor on a stable, evenly-lit reference area such as a calibration card. |
LumaAreaTop |
int |
get/set |
Top edge of the luminance sensor rectangle, in pixels. [min=0, max=3840, default=auto]. |
LumaAreaWidth |
int |
get/set |
Width of the luminance sensor rectangle, in pixels. [min=0, max=640, default=256]. |
LumaAreaHeight |
int |
get/set |
Height of the luminance sensor rectangle, in pixels. [min=0, max=640, default=192]. |
Luminance |
float |
get |
Current measured luminance of the sensor area, 0..1 (read-only). |
LuminanceString |
string |
get |
Current luminance shown as a percentage string (read-only). |
StoreLuminanceCommand |
Command |
get |
Save the current luminance reading as the reference brightness. Run this once after the lighting is set. The tracker then reports drift relative to this value and can compensate it via Luminance autocorrect. |
StoredLuminance |
float |
get/set |
The reference luminance saved by Store Luminance, 0..1. |
StoredLuminanceString |
string |
get/set |
Stored reference luminance, formatted as a percentage string. |
LuminanceChange |
float |
get |
Ratio of current luminance to stored luminance (read-only). 1 means lighting is unchanged; values below 1 mean darker, above 1 mean brighter. |
LuminanceChangeString |
string |
get |
Current luminance change formatted as a percentage string (read-only). |
LuminanceAutoCorrect |
bool |
get/set |
Automatically scale the layer's brightness to match the stored reference. [default=false]. Useful when ambient light shifts during a long shoot and you want the layer to keep its original look. |
ErrorOnMarkerLost |
bool |
get/set |
Log an error if the marker is lost while a reference position is stored. [default=false]. Useful in unattended setups so an alert is raised when the camera or marker is bumped out of view. |
ErrOnPositionChanged |
bool |
get/set |
Log a warning when the marker drifts past the position threshold. [default=true]. Combine with PositionErrorThresHoldPixels to define how much movement counts as drift. |
ErrOnLuminanceChanged |
bool |
get/set |
Log a warning when measured luminance differs from the stored reference. [default=true]. Combine with LuminanceErrorThresHoldPercentage to define how much change counts as a problem. |
PositionErrorThresHoldPixels |
int |
get/set |
How many pixels of drift are allowed before a position warning is logged. [min=2, max=20, default=8]. Lower values are stricter and good for tightly-framed shots. Higher values tolerate camera shake. |
LuminanceErrorThresHoldPercentage |
int |
get/set |
How many percent the luminance may differ before a brightness warning is logged. [min=2, max=20, default=6]. Lower values are stricter; higher values tolerate normal lighting variation. |
ResetCmd |
Command |
get |
Reset all settings to their defaults (tolerance, scan area size, sensor area, error thresholds, stored references). |
Inherits from: AbstractOperator, AbstractAudioMetering.
See also: Point Tracker in Operators — user-facing introduction, screenshots, and section summaries.