background op• Data kinds: video → video
• Call: import fullseye as fs; fs.ledger.running_gaussian_background(video, alpha: 'float' = 0.02, k: 'float' = 2.5, var_init: 'float' = 0.01, selective: 'bool' = True) -> 'np.ndarray' (to call the implementation directly, import videostream; videostream.running_gaussian_background(video, alpha: 'float' = 0.02, k: 'float' = 2.5, var_init: 'float' = 0.01, selective: 'bool' = True) -> 'np.ndarray'; from the registry, opsvideostream.get("running_gaussian_background"))
Adaptive single-Gaussian background (the running mean) per frame → (T, H, W) (video).
Runs a single-Gaussian background with a per-pixel mean mean and variance var (Wren's Pfinder), and returns mean after each frame. The foreground test is (frame - mean)^2 > k^2 var. With selective=True (default), mean / var of pixels judged foreground are not updated, so slowly moving objects do not melt into the background. The update rules are mean += α diff and var += α (diff^2 - var), with a lower bound of 1e-4 on var.
• video: a (T, H, W) array or a list of 2-D frames. Integers are normalised to [0, 1] by their maximum, float is clipped. NaN/Inf gives ValueError.
• alpha: learning rate in [0, 1]. Default 0.02 (time constant about 50 frames).
• k: [0, 100]. Multiple of the standard deviation regarded as foreground. Default 2.5.
• var_init: [1e-9, 1]. Initial variance at the first frame (the [0, 1] intensity to the power of 2). If too small, every pixel becomes foreground from the 2nd frame on, and selective stops the update.
• selective: whether to stop updating foreground pixels. With False every pixel is always updated.
• Returns: (T, H, W) float64. t = 0 is the first frame itself.
• Failure: ValueError (shape, dtype, each range).
The foreground mask of the same model is running_gaussian_foreground (paired with the same arguments, it is consistent frame by frame).
• video_streaming family guide
• mv_cables — Cables (standards, speed, power delivery, robot cables)
• mv_frame_grabbers — Frame grabber boards (not optics, but they decide whether you can capture at all)
• mv_standards — Camera interface standards and the bodies behind them
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• video_streaming — py -3.11 examples/video_streaming.py
video as input)temporal_median_window · moving_average_window · background_subtraction_window · frame_difference_causal · exponential_background · exponential_foreground · running_mean_std · optical_flow_magnitude_stream
background)*Provenance: videostream.py — VIDEOSTREAM operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.