piv_synth_sequence — PIV synth op

• 資料種類:無 → images(僅由參數決定的運算子 —— 不接受影像或資料輸入)

• 呼叫: import fullseye as fs; fs.ledger.piv_synth_sequence(shape, displacement, n_frames=8, density=0.02, diameter_px=2.5, seed=0, noise_sigma=0.0, intensity=(0.6, 1.0), background=0.0, jitter=0.0)(要直接呼叫實作,import pivops; pivops.piv_synth_sequence(shape, displacement, n_frames=8, density=0.02, diameter_px=2.5, seed=0, noise_sigma=0.0, intensity=(0.6, 1.0), background=0.0, jitter=0.0);從台帳取用則 opspiv.get("piv_synth_sequence"))

• 經台帳呼叫的回傳值: fullseye.ledger.piv_synth_sequence(...) 只回傳宣告的 out 型別 images 的值(底層函式還會回傳輔助資訊)。需要被捨棄的部分時,請用 fullseye.ledger.piv_synth_sequence.raw(...),或直接呼叫 pivops.piv_synth_sequence。

• 底層回傳: (frames, truth) -> images

用法

同一批粒子反覆移動而得到的影像序列。回傳 (frames, truth)。

piv_synth_pair 產生 2 幅,而這裡產生持續追蹤 1 個流動的序列。系集相關與時間統計只有用它才能驗證 —— 若把獨立的影像對排起來稱為序列,相鄰 2 幅之間沒有對應關係,統計就失去意義(實測:相對平均 0.73 px,擾動 RMS 竟為 4.05 px,量到的是產生方式而不是流動)。

Args:

shape: (H, W)。

displacement: 每 1 影格的位移(與 piv_synth_pair 相同的格式)。

n_frames: 影格數(2 以上)。

jitter: 每影格對整個場施加的擾動的標準差 [px]。0 則為穩態流。

要試驗時間統計(擾動、雷諾應力),請讓它大於 0。

★ 不是逐粒子獨立的擾動,而是每影格一個擾動。

若逐粒子施加,會在窗口內被平均,縮小為 N 的平方根分之一,

注入值與量測值對不上(實測:注入 0.3 量得 0.15)。

這是 PIV 的性質而不是錯誤,但不能用於驗證時間統計,因此這裡做成模擬非穩態流動本身的形式。

density / diameter_px / seed / noise_sigma / intensity / background:

與 piv_synth_pair 相同。

Returns:

(frames: list of (H, W), truth: (2, H, W))。truth 是

每 1 影格的平均位移。

詳細使用指南

• 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

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

piv_ensemble_correlate · piv_time_statistics

同類別(synth)

piv_synth_particles · piv_synth_pair


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

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