background_subtraction_window — VIDEOSTREAM 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。

詳細使用指南

• video_streaming 族使用指南

背景知識指南(該運算子背後的物理與規範)

• mv_cables — 線纜(規格、速度、供電、機器人線纜)

• mv_frame_grabbers — 影像擷取卡(不屬於光學系統,卻決定能否擷取到影像)

• mv_standards — 相機介面規格與標準組織

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• 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 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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