Annotators can now press Auto Segment to replace the current mask with
an automatic river segmentation based on dense optical flow magnitude
and frame brightness. The result is pushed onto the undo stack, so it
can be refined or reverted like any other mask operation.
Parameters (norm_squared_threshold, gaussian_kernel, brightness_range)
live in a separate config/optical_flow_config.yaml; the button is only
enabled when optical_flow_config_file is set in config.yaml.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Introduce two new drawing modes alongside the existing brush:
- Polygon mode: left-click to place vertices connected by lines; right-click
removes the last vertex; clicking near the first vertex (red dot) when >= 3
points are placed closes the shape (bold cyan outline). Multiple shapes can
coexist as canvas overlays. Cancel Current Poly discards the in-progress
polygon; Del Shape removes the last completed shape.
- Fill mode: left-click inside any closed polygon to rasterise it onto the
mask. Selects the innermost shape containing the click (smallest area via
cv2.contourArea). Polygons whose centroid lies inside the target are punched
out as holes. Each fill is a single undoable step in the mask history.
Also renames the Alpha slider label to Mask Alpha and removes the stale
Reload Saved reference from the README.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Three vertical sliders (Brightness, Contrast, Gamma) to the left of the
canvas for display-only image adjustment; all use power/linear formulae
applied on-the-fly without touching saved data
- Alpha slider controls mask overlay transparency
- Brush size slider moved to its own row
- Each slider has a reset (↺) button restoring its default value
- Hide Mask button turns red when active; Eraser button turns orange
- Load Prev Mask button copies the saved mask from the previous clip in
the list onto the current clip; the action is pushed onto the undo stack
so it can be reverted with Undo
- Right survey panel narrowed (stretch factor 2 → 1)
- README Controls section updated to document all new features
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Previous: saves current clip and navigates back through session history;
disabled on the first clip, re-enabled automatically as you advance.
- Next: shows a dialog when a saved annotation already exists, letting the
annotator choose to replace it or keep the existing save before advancing.
- Removed the standalone Save button; Next auto-saves on every advance.
- Skip already wrote nothing to disk; clarified in README.
- Refactored _advance_clip into _switch_ui_to_clip (shared with prev/next).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Show a modal dialog when all clips have been processed and quit cleanly.
Add --no-skip CLI flag to include already-annotated clips (default remains to skip them).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- config.py constants -> config/config.yaml (user-editable, git-ignored)
- Questions and defaults now defined in the YAML, including per-question defaults
- ClipSelector no longer scans the data dir; reads a user-provided clips.txt instead
- Removed --daily / --time / --skip-existing-day args
- video_loader now samples frames evenly across the full clip
- pyyaml added as a dependency
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>