Principle:PeterL1n BackgroundMattingV2 Realtime display
| Knowledge Sources | |
|---|---|
| Domains | Visualization, Realtime_Systems |
| Last Updated | 2026-02-09 00:00 GMT |
Overview
An interactive display wrapper that renders processed video frames in a resizable OpenCV window with FPS tracking and keyboard input handling.
Description
Realtime display provides a user interface for interactive matting applications. It combines three concerns:
- Frame display: Rendering the processed matting output in an OpenCV window using cv2.imshow
- FPS tracking: Computing an exponentially moving average of frames per second for performance monitoring, overlaid as text on the display
- Keyboard input: Polling for key presses to support interactive controls (e.g., B to capture background, Q to quit)
The FPS tracker uses an EMA (exponential moving average) with a configurable ratio to smooth out frame-to-frame timing variations.
Usage
Use this principle in interactive real-time matting demos. The display is instantiated once at startup with a window title and dimensions. In the main loop, call step(image) to update the display and check for key presses.
Theoretical Basis
FPS Estimation:
where α is the smoothing ratio (default 0.5) and fps_sample = 1 / Δt.
Event Loop Pattern:
# Abstract display loop
while True:
frame = process_frame()
key = display.step(frame) # show frame, get keypress
if key == 'q':
exit()
elif key == 'b':
capture_background()