gen_measure_arc — MEASURE1D caliper op

• Data kinds: none → measurehandle (an op determined by its arguments alone — it takes no image or data input)

• Call: import fullseye as fs; fs.ledger.gen_measure_arc(center_row, center_col, radius, angle_start, angle_extent, width, shape) (to call the implementation directly, import measuring1d; measuring1d.gen_measure_arc(center_row, center_col, radius, angle_start, angle_extent, width, shape); from the registry, opsmeasure1d.get("gen_measure_arc"))

Usage

Defines a measurement arc (the profile is sampled at ≈1 px spacing in the circumferential direction) (gen_measure_arc). Number of samples n = round(|angle_extent|*radius)+1, spacing = arc length/(n-1).

The sample points on the arc are row = center_row + radius sin(θ), col = center_col + radius cos(θ), θ = angle_start + linspace(0, angle_extent, n). Angles are in radians, and the direction turning from the col axis (x) toward the row axis (image downward) is positive. If angle_extent is negative it proceeds the other way round, and pos / dist of measure_pos are counted along that direction of travel.

• radius: [px]. Since n = max(2, round(|angle_extent| * radius) + 1), if the radius or angular width is too small, there are 2 samples and spacing becomes the arc length itself. radius = 0 gives spacing = 0 and breaks the differentiation downstream (not validated here).

• width: averaging width across (along the normal) [px]. Truncated to int; at 1 or less, no averaging.

• shape: the image (H, W). It is only stored in the dict; out-of-range points are extrapolated by nearest neighbour on the measure_pos side (no exception is raised).

• Returns: a dict {"type": "arc", "rows", "cols", "width", "shape", "spacing", "center", "radius", "angles"} (type measurehandle).

Pass it to measure_pos / measure_pairs / fuzzy_measure_pairing. For a straight line, gen_measure_rectangle2. After positioning, move it with translate_measure.

Detailed usage guide

• subpixel_measuring family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_dimensional_inspection — py -3.11 examples/poc_dimensional_inspection.py

Ops the type connects to (they accept measurehandle as input)

translate_measure · measure_pos · measure_pairs · fuzzy_measure_pairing

Same category (caliper)

gen_measure_rectangle2 · translate_measure · measure_pos · measure_pairs · fuzzy_measure_pairing


*Provenance: measuring1d.py — MEASURE1D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

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