marker_match_grow — DRIVE tacslip op

• 数据种类:matrix × matrix × scalar → table

• 调用: import fullseye as fs; fs.ledger.marker_match_grow(p0, p1, pitch_px: 'float', seed_tol: 'float' = 0.25, tols=(0.2, 0.3, 0.45), nb_r: 'float' = 1.6, border: 'float' = 2.0, max_iter: 'int' = 80) -> 'dict'(要直接调用实现,import tacslip; tacslip.marker_match_grow(p0, p1, pitch_px: 'float', seed_tol: 'float' = 0.25, tols=(0.2, 0.3, 0.45), nb_r: 'float' = 1.6, border: 'float' = 2.0, max_iter: 'int' = 80) -> 'dict';从台账取用则 opsdrive.get("marker_match_grow"))

用法

通过利用连续性逐步扩展来求基准标记 p0 与加载后标记 p1(各 (N, 2) [px])的对应关系。返回 i0、i1(对应的 index 数组)和 matched。

在规则网格上,|u| 超过间距/2 时,最近邻和相关都会跳到相邻标记(实测:8 px 网格上 5 px 的偏移被 PIV 读为 −3 px)。种子 = p0 外接矩形边缘(border·间距以内)的标记中,无预测最近邻在 seed_tol·间距以内且第 2 近的比 0.75 间距远的那些("接触在视野内侧,边缘是远场 = 小位移"的物理前提。若处处都作种子,由于核心位移 6.4 px 距离相邻基准位置 1.6 px,产生了 27 个跳了一个间距的伪种子)。此后,对未对应的标记,以 nb_r·间距以内 2 个以上已对应点的位移平均作为预测, 取 tol·间距以内的最近邻,tol 从小值逐步放宽。每个 p1 只使用一次。Raises ValueError:p0/p1 不是 (N, 2)、pitch_px ≤ 0。

空输入(p0 为 0 个元素)会引发 ValueError。

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

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

可运行的示例(实际调用该算子并已验证的样例)

• gallery_drive_soil_tactile — py -3.11 examples/gallery_drive_soil_tactile.py

类型可衔接的下一个算子(可接受 table 作为输入)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

同类别(tacslip)

mindlin_partial_slip · mindlin_traction · hertz_surface_ur · hertzian_tangential_inner · cerruti_kernel · cerruti_surface_displacement · membrane_shear_field · membrane_markers


*Provenance: tacslip.py — DRIVE 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

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