tacslip opimage2d × scalar × scalar → tableimport fullseye as fs; fs.ledger.marker_detect(m, dark: 'float', r_px: 'float', binary: 'bool' = False) -> 'dict' (実装を直接呼ぶなら import tacslip; tacslip.marker_detect(m, dark: 'float', r_px: 'float', binary: 'bool' = False) -> 'dict'、台帳から引くなら opsdrive.get("marker_detect"))マーカー像 m(:func:marker_image)→ マーカー中心。weighted(主、(N, 2) の (x, y) [px]): 高しきい値 0.5·dark の連結成分
(:func:blob2d.blob_label)を本体とし、低しきい値 0.08·dark の画素(縞)を距離変換で最近傍の本体へ割り当て、m を重みにした重心を
反復ガウス重み(σ = r_px)で精密化。weighted_plain = 精密化前。binary=True なら binary = :func:blob2d.blob_features の
row/col(二値重心、周長・凸包まで計算するので 1,000 個で 0.4 s)。縁に触る成分は捨てる。n = 本体の数。
縞を本体から切るのは、滑り環で隣接間隔が 8 → 6 px に縮むと低しきい値の縞が繋がって 1 成分に併合するから(実測)。
Raises ValueError: m が 2 次元でない、dark が (0, 1] の外、r_px ≤ 0。
py -3.11 examples/poc_tacsim_marker_shear.pytable を入力に取れる)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 operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.