background_subtraction_window — VIDEOSTREAM window op

• Datenarten: video → video

• Aufruf: import fullseye as fs; fs.ledger.background_subtraction_window(video, window: 'int' = 5, threshold: 'float' = 0.1) -> 'np.ndarray' (die Implementierung direkt: import videostream; videostream.background_subtraction_window(video, window: 'int' = 5, threshold: 'float' = 0.1) -> 'np.ndarray'; aus dem Register: opsvideostream.get("background_subtraction_window"))

Verwendung

Kausaler Fenstermedian-Hintergrund → 0/1-Vordergrundmasken pro Bild (T, H, W) (video).

Für jeden Frame t wird der pixelweise Median der letzten window Frames (max(0, t-window+1) .. t, einschließlich dieses Frames selbst) als Hintergrund bg genommen, und |frame_t - bg| > threshold wird auf 1 gesetzt, alles andere auf 0. Zukünftige Frames werden nicht betrachtet (kausal), daher ist am Anfang das Fenster um die fehlenden Frames kürzer.

• video: ein (T, H, W)-Array oder eine list von 2-D-Frames gleicher Form und gleichen dtype. uint8/uint16 wird über das dtype-Maximum auf [0, 1] gebracht, float wird unverändert auf [0, 1] begrenzt. Farbe (T, H, W, C) wird nicht angenommen. NaN/Inf ergibt ValueError.

• window: int von 1 bis 4096 (kein bool). Bei 1 ist der Hintergrund = der Frame selbst, also alle Pixel 0. Bei gerader Anzahl ist der Median der Mittelwert der 2 mittleren Werte.

• threshold: in Intensitätseinheiten von [0, 1] (bei uint8 umgerechnet als /255).

• Rückgabewert: (T, H, W) float64 aus 0 / 1.

• Fehler: ValueError (Form, dtype, Bereich, nicht endlich).

Langsam bewegte Objekte verschmelzen innerhalb von window Frames mit dem Hintergrund; in dem Fall running_gaussian_foreground (selektive Aktualisierung) oder exponential_foreground verwenden. Wird der Hintergrund selbst benötigt, temporal_median_window.

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie video_streaming

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• mv_cables — Kabel (Standards, Geschwindigkeit, Stromversorgung, Roboterkabel)

• mv_frame_grabbers — Framegrabber-Karten (keine Optik, entscheiden aber, ob überhaupt aufgenommen werden kann)

• mv_standards — Kameraschnittstellen: Standards und Gremien

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• video_streaming — py -3.11 examples/video_streaming.py

Typkompatible Folge-Operatoren (nehmen video als Eingabe)

temporal_median_window · moving_average_window · frame_difference_causal · exponential_background · exponential_foreground · running_mean_std · optical_flow_magnitude_stream · motion_history_image

Gleiche Kategorie (window)

temporal_median_window · moving_average_window


*Provenance: videostream.py — VIDEOSTREAM Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.