Skip to content

Display detections flagged with a suppression attribute as suppressed#1785

Open
mattdawkins wants to merge 2 commits into
mainfrom
feat/attribute-suppression
Open

Display detections flagged with a suppression attribute as suppressed#1785
mattdawkins wants to merge 2 commits into
mainfrom
feat/attribute-suppression

Conversation

@mattdawkins

Copy link
Copy Markdown
Member

Problem

Suppression regions (#1760) hide detections lying under a region. But a detection can also be marked suppressed by an attribute — an attribute named after the suppression type ("Suppressed" by default) set true by a pipeline or user — while sitting outside any region. Previously such a detection displayed as its normal type and counted normally, with nothing indicating its suppressed status.

Behavior

A detection carrying the suppression attribute (on the track, or on the detection at the current frame) is treated as a display-only special case:

  • Stays visible (unlike region suppression, it is not hidden).
  • Displays as the suppression type: it inherits the suppression type's color, opacity, and fill, and the canvas label and hover tooltip show the suppression type instead of its own. This is done by overriding styleType in LayerManager, which is the single source feeding every layer's styling, the text label, and the tooltip.
  • Doesn't count toward its own type: excluded from the type list's dataset totals (when every keyframe is suppressed by region or attribute) and from the per-frame counts.
  • Real type preserved: selecting the detection still shows its actual type in the details panel, which remains editable — the attribute only overrides display, never the stored type.

Recognized attribute values: true, nonzero numbers, and 'true' / 'yes' / 'on' / '1' in any case. On interpolated frames the check falls back to the previous keyframe's detection attributes. The suppression-type setting's help text now documents the attribute behavior.

Includes unit tests for the attribute-flag parsing and track/detection/interpolated-frame lookups.

🤖 Generated with Claude Code

mattdawkins and others added 2 commits July 21, 2026 17:13
A detection outside any suppression region can carry an attribute named
after the suppression type ("Suppressed" by default), set on the track
or on the detection at a frame. Such a detection now stays visible but
is treated as suppressed for display purposes:

- it inherits the suppression type's style (color, opacity, fill) and
  its canvas label and hover tooltip show the suppression type, via a
  styleType override in LayerManager;
- it no longer counts toward its own type in the type-list totals or
  the per-frame counts;
- selecting it still shows its real type, which remains editable; the
  attribute only overrides display, never the stored type.

Attribute values true, nonzero numbers, and 'true'/'yes'/'on'/'1' (any
case) are all recognized. Interpolated frames fall back to the previous
keyframe's detection attributes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Region suppression previously hid any detection lying >=50% under a
suppression region. The minimum covered fraction is now a setting
(Type Settings > Suppression Overlap %), defaulting to 95%, so only
detections almost entirely under a region are hidden and excluded from
counts. Out-of-range or missing values fall back to the default.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant