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):
高斯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”。
• 示例数据目录(下载 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.