LabKit MATLAB Workbench

history

Video Marker app

id: LK-20260713-video-marker-app
date: 2026-07-13
sequence: 54
type: feat
compatibility: compatible
component: `labkit_VideoMarker_app` | `new -> 1.0.0`
scope: Video Marker app

Context

Image measurement workflows needed a generic video annotation tool for ordered 2D keypoints and skeleton connections. The app belongs with image measurement tools because it uses the same axes interaction, scale calibration, and export style, but the source media and frame navigation are video-specific.

Decision and rationale

Add a standalone Video Marker app instead of extending an existing image-only app or adding a public video facade. The first version keeps marker semantics app-local, uses existing UI interaction tools for ordered points and scale calibration, and avoids training, inference, multi-subject tracking, or per-point missing-state semantics.

Changes

User and data impact

Users can manually annotate video frames without depending on a model-training workflow. Marker CSV remains the editable round-trip format; coordinate CSV is plain plotting data and does not mutate the saved marker annotations.

Compatibility and migration

The app is additive and does not change existing image measurement apps or public LabKit facades. No existing project files or exports require migration.

Validation

VideoMarkerTest covers skeleton parsing, frame inheritance, marker CSV round trip, coordinate transforms, and project save/load. GuiLayoutVideoMarkerTest covers the hidden GUI launch and semantic control contract. Both accompanied the app in commit b41f5254.

Evidence

Known limitations and follow-up

The first version is manual and single-subject. It intentionally does not perform automatic interpolation, optical flow, model inference, multi-camera synchronization, 3D annotation, or per-point missing/out-of-frame labeling.