window op• データ種: video → video
• 呼び出し: import 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"))
因果的な窓中央値の背景 → フレームごとの 0/1 前景マスク `(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`。
• mv_cables — ケーブル(規格・速度・給電・ロボットケーブル)
• mv_frame_grabbers — フレームグラバーボード(光学系ではないが、撮れるかを決める)
• mv_standards — カメラインターフェースの規格と団体
• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。
• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。
• アルゴリズムの正典(著者・年)と用途は上記ファミリ使い方ガイドに記載。
• video_streaming — py -3.11 examples/video_streaming.py
video を入力に取れる)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.