assess op• 데이터 종류: flow2d → table
• 호출: import pivops; pivops.piv_peak_locking(flow, bins=20)(또는 opspiv.get("piv_peak_locking"))
> 이 연산자의 설명은 아직 번역이 없습니다. 원문을 그대로 싣습니다.
ピークロッキングの強さ。小数部の分布が一様からどれだけ外れているか。
サブピクセル推定は、真の変位の小数部が 0 や 0.5 のときにそこへ引き寄せられる
偏りを持つ(相関ピークの形と当てはめる関数の形が違うことから来る、PIV の
教科書的な系統誤差)。流れが一様でなければ小数部は一様分布に近いはずで、
そこからのずれを測る。
指標 `c0` は標本数に依らないカイ二乗型のずれ:
`sum((n_i - n_bar)^2 / n_bar) / (bins - 1)`。一様分布から標本を取ると
期待値 1 になるので、1 前後なら一様と区別できない、大きいほど偏っている。
★ ただしこの指標は「真の変位の小数部が一様である」ことを仮定する。窓の数が
少ない場や、変位がゆっくり変わる場では真値そのものの c0 も大きくなる
(実測: 線形ランプの真値で 82 —— 窓格子が 19 列しか無く小数部が離散的に
しか現れないため)。したがって c0 は同じ入力の真値と比べて読むこと。
決定的な診断は別にある —— 一様並進の小数部を 0 から 0.9 まで振り、
推定値が対角線に乗るかを見る。実測(win=32、density 0.02):
========== ================= ==================
推定法 小数部誤差の RMS 最大絶対誤差
========== ================= ==================
gauss3 0.0037 px 0.0088 px
parabolic 0.0104 px 0.0151 px
centroid 0.2259 px 0.3701 px
========== ================= ==================
`centroid` は真値 0.1 を 0.02、0.9 を 0.98 と答える —— 整数へ引き寄せる
教科書どおりの S 字。出るはずのものが出たことの確認であって、
実装の不具合ではない(だから 3 つとも残してある)。
Args:
flow: `(2, h, w)`。
bins: 小数部のヒストグラムの階級数。
Returns:
dict: `c0(両成分合わせた指標)、hist((2, bins)`)、
`frac_mean / frac_std、bins`。
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• (아직 없음)
table 를 입력으로 받는 것)—
assess)piv_sample_at_windows · piv_error_stats · piv_time_statistics
*Provenance: pivops.py — PIV 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.