piv_outlier_mask — PIV validate op

• 資料種類:flow2d → mask

• 呼叫: import fullseye as fs; fs.ledger.piv_outlier_mask(flow, threshold=2.0, epsilon=0.1)(要直接呼叫實作,import pivops; pivops.piv_outlier_mask(flow, threshold=2.0, epsilon=0.1);從台帳取用則 opspiv.get("piv_outlier_mask"))

用法

以正規化中位數檢定(Westerweel & Scarano 2005)找出離群向量。

對每個向量,把它與 8 鄰域中位數的殘差除以鄰域殘差的中位數。在分母加上 epsilon(預設 0.1 px,PIV 量測不確定度的大致量級),是為了防止在均勻場中分母變為 0、全部都成了離群值 —— 沒有這一項,輸入越理想,檢定越會崩潰。

★在梯度陡峭的場中有害(2026-09-06 實測)。對 Rankine 型渦(渦核半徑 28 px)做多段 PIV,閾值 2 撿取的 5 根向量全部排在渦核邊緣(距中心 32 px),實際誤差為 0.07-0.45 px —— 不是離群值,而是速度分布出現折點的位置。以鄰域中位數抹平後 RMS 從 0.134 惡化到 0.230(閾值 5 時 1 根也沒撿取,仍為 0.134)。

檢定立足於「與鄰域不同 = 錯誤」的假定,因此會把真實的不連續稱為錯誤。是否施加,請看場的性質來決定。

Args:

flow: (2, h, w)。

threshold: 超過此值即為離群值。慣例為 2。

epsilon: 分母的底值 [px]。

Returns:

(h, w) 的 bool。True 為離群值(nan 也為 True)。

詳細使用指南

• piv_displacement 族使用指南

參考(範例資料、文獻)

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

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

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

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

• piv_flow_from_particles — py -3.11 examples/piv_flow_from_particles.py

• poc_change_detection_misreg — py -3.11 examples/poc_change_detection_misreg.py

• poc_river_surface_velocity — py -3.11 examples/poc_river_surface_velocity.py

型別可銜接的下一個運算子(可接受 mask 作為輸入)

piv_replace_outliers

同類別(validate)

piv_replace_outliers


*Provenance: pivops.py — PIV 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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