window opvideo → videoimport fullseye as fs; fs.ledger.background_subtraction_window(video, window: 'int' = 5, threshold: 'float' = 0.1) -> 'np.ndarray' (実装を直接呼ぶなら import videostream; videostream.background_subtraction_window(video, window: 'int' = 5, threshold: 'float' = 0.1) -> 'np.ndarray'、台帳から引くなら opsvideostream.get("background_subtraction_window"))Causal window-median background → per-frame 0/1 foreground masks (T, H, W) (video).
フレーム t ごとに、直近 window 枚(max(0, t-window+1) .. t、そのフレーム
自身を含む)の画素ごとの中央値を背景 bg とし、|frame_t - bg| > threshold
を 1、それ以外を 0 にする。未来のフレームは見ない(因果的)ので、先頭では
枚数が足りないぶん窓が短い。
video: (T, H, W) の配列、または同形・同 dtype の 2-D フレームの list。
uint8/uint16 は dtype の最大値で [0, 1] に、float はそのまま [0, 1] に
クリップ。カラー (T, H, W, C) は受けない。NaN/Inf は ValueError。window: 1〜4096 の int(bool 不可)。1 だと背景 = 自分なので全画素 0。
偶数枚のときの中央値は中間 2 値の平均。threshold: [0, 1] の強度単位(uint8 なら /255 換算)。(T, H, W) float64 の 0 / 1。ValueError(形・dtype・範囲・非有限)。ゆっくり動く物体は window 枚以内に背景へ溶けるので、その場合は
running_gaussian_foreground(選択的更新)か exponential_foreground を。
背景そのものが要るなら temporal_median_window。
py -3.11 examples/video_streaming.pyvideo を入力に取れる)temporal_median_window · moving_average_window · frame_difference_causal · exponential_background · exponential_foreground · running_mean_std · optical_flow_magnitude_stream · motion_history_image
window)temporal_median_window · moving_average_window
Provenance: videostream.py — VIDEOSTREAM operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.