robokudo.vis.cv_visualizer

OpenCV-based visualization for RoboKudo pipelines.

This module provides OpenCV-based visualization capabilities for RoboKudo pipelines. It handles:

  • 2D image visualization with annotator overlays

  • Mouse interaction handling

  • Keyboard controls for navigation and control

  • Window management

  • Pipeline state visualization

Dependencies

  • cv2 for image display and window management

  • numpy for image manipulation

  • py_trees for behavior tree integration

  • robokudo.annotators for annotator access

  • robokudo.vis.visualizer for base visualization interface

See Also

Classes

CVVisualizer

OpenCV-based visualizer for 2D image data.

Module Contents

class robokudo.vis.cv_visualizer.CVVisualizer(*args, **kwargs)

Bases: robokudo.vis.visualizer.Visualizer, robokudo.vis.visualizer.Visualizer.Observer

OpenCV-based visualizer for 2D image data.

This class provides visualization of 2D image data from pipeline annotators using OpenCV windows. It supports:

  • Image display with annotator overlays

  • Mouse interaction handling

  • Keyboard navigation between annotators

  • Window management

  • Shared visualization state

Parameters

*args

Variable length argument list passed to parent classes

**kwargs

Arbitrary keyword arguments passed to parent classes

Attributes

shared_visualizer_stateVisualizer.SharedState

Shared state object for coordinating between visualizers

update_outputbool

Flag indicating if display needs updating

tick()

Update the visualization display.

This method:

  • Gets current annotator outputs

  • Updates display if needed

  • Renders annotator name overlay

  • Manages OpenCV window

mouse_callback_cv(event, x, y, flags, param)

Mouse callback for the 2D Visualizer. Prints double click events and forwards every event to the active annotator.

Parameters:
  • event (int) – OpenCV mouse event type

  • x (int) – X coordinate of mouse event

  • y (int) – Y coordinate of mouse event

  • flags (int) – OpenCV event flags

  • param (any) – Additional parameters (unused)

window_title()

Get the window title for this visualizer.

Returns:

Window title in format “RoboKudo/pipeline_name”

Return type:

str

notify(observable, *args, **kwargs)

Handle notification of state changes.

Parameters:

observable (object) – The object that sent the notification

static static_post_tick()

Handle keyboard input after visualization update.

This method:

  • Checks for keyboard input

  • Routes input to appropriate visualizer

  • Handles termination requests

static get_gui_handler_for_detected_key()

Get the visualizer instance for the focused window.

Returns:

The visualizer instance for the focused window, or None if not found

Return type:

Optional[CVVisualizer]

handle_keycallback(key)

Handle a key-press that happened in the corresponding GUI of this GUIHandler.

Parameters:

key (int) – An ASCII char

Returns:

false if GUI reports abort (right now this only happens when ESC is pressed)

Return type:

bool