piv_peak_locking — PIV assess op

• 資料種類:flow2d → table

• 呼叫: import fullseye as fs; fs.ledger.piv_peak_locking(flow, bins=20)(要直接呼叫實作,import pivops; pivops.piv_peak_locking(flow, bins=20);從台帳取用則 opspiv.get("piv_peak_locking"))

• GPU:無(僅 CPU 參考實作)

用法

峰值鎖定的強度:小數部分的分布偏離均勻分布的程度。

當小數部分為 0 或 0.5 時,子像素估計值傾向於真實位移。偏差(由於相關峰值的形狀和擬合函數的形狀不同)教科書系統錯誤)。 如果流量不均勻,小數部分應接近均勻分佈,測量與那裡的偏差。

索引“c0”是与样本大小无关的卡方偏差: sum((n_i - n_bar)^2 / n_bar) / (2*bins - 1)。對於結合了兩個組件的 2*bins 類,如果我們從均勻分佈中抽取樣本,我們會得到期望值是1,所以如果在1左右,就無法與uniform區分開來。 越大,偏差越大。

★ 然而,此指標假設真實位移的小數部分是均勻的。窗戶數量在位移很少或變化緩慢的場中,真實值本身 c0 也會變大

(實測:線性燈真實值為82-視窗網格只有19列,小數部分離散。)。因此,透過與相同輸入的真實值進行比較來讀取c0。

确诊是分开的 —— 将均匀平移的小数部分从0缩放到0.9,查看估計值是否位於對角線上。實測(win=32,密度0.02):

估計方法 分數誤差的 RMS 最大絕對誤差

高斯3 0.0037 像素 0.0088 像素拋物線 0.0104 像素 0.0151 像素質心 0.2259 像素 0.3701 像素

centroid 將真實值 0.1 回答為 0.02,將 0.9 回答為 0.98 — 吸引到一個整數就像教科書上的S形。 確認應該出現的結果出現了,这不是实现的问题(这就是为什么所有三个都保留在原处)。

參數:

流程:(2,h,w)。

bins:小數部分中直方圖類別的數量。

返回:

dict:c0(兩個元件的索引組合),hist((2,bins)),

“frac_mean”/“frac_std”、“bins”。

詳細使用指南

• piv_displacement 族使用指南

參考(範例資料、文獻)

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

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

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

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

• piv_field_analysis_tour — py -3.11 examples/piv_field_analysis_tour.py

• poc_battery_electrode_breathing — py -3.11 examples/poc_battery_electrode_breathing.py

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

—

同類別(assess)

piv_sample_at_windows · piv_error_stats · piv_time_statistics


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

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