caliper opなし → measurehandle(引数だけで決まる op —— 画像やデータの入力を取らない)import fullseye as fs; fs.ledger.gen_measure_arc(center_row, center_col, radius, angle_start, angle_extent, width, shape) (実装を直接呼ぶなら import measuring1d; measuring1d.gen_measure_arc(center_row, center_col, radius, angle_start, angle_extent, width, shape)、台帳から引くなら opsmeasure1d.get("gen_measure_arc"))測定弧(円周方向に ≈1 px 間隔でプロファイルを取る)を定義(gen_measure_arc)。
サンプル数 n = round(|angle_extent|*radius)+1、spacing = 弧長/(n-1)。
弧上のサンプル点は row = center_row + radius sin(θ)、
col = center_col + radius cos(θ)、θ = angle_start + linspace(0, angle_extent, n)。
角度は ラジアンで、col 軸(x)から row 軸(画像下向き)へ回る向きが正。
angle_extent が負なら逆回りに進み、measure_pos の pos / dist は
その進行方向に沿って数える。
radius: [px]。n = max(2, round(|angle_extent| * radius) + 1) なので、
半径や角度幅が小さすぎるとサンプル 2 点・spacing が弧長そのものになる。
radius = 0 は spacing = 0 になり後段の微分で破綻する(ここでは検証しない)。width: 幅方向(法線)の平均化幅 [px]。int に切られ、1 以下なら平均なし。shape: 画像の (H, W)。dict に保存されるだけで、範囲外は
measure_pos 側が最近傍で外挿する(例外は出ない)。{"type": "arc", "rows", "cols", "width", "shape", "spacing", "center",
"radius", "angles"} の dict(measurehandle 型)。measure_pos / measure_pairs / fuzzy_measure_pairing に渡す。直線なら
gen_measure_rectangle2。位置決め後は translate_measure で動かす。
py -3.11 examples/poc_dimensional_inspection.pymeasurehandle を入力に取れる)translate_measure · measure_pos · measure_pairs · fuzzy_measure_pairing
caliper)gen_measure_rectangle2 · translate_measure · measure_pos · measure_pairs · fuzzy_measure_pairing
Provenance: measuring1d.py — MEASURE1D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.