fullseye

add_metrology_object_circle_measure — MEASURE1D model op

使い方

円計測オブジェクトを追加(add_metrology_object_circle_measure)。

参照円(中心 (row, col)、半径 radius [px])を model["objects"] に積む (dict をその場で更新)。apply_metrology_model は円周を n 等分した角度に 点を置き、各点で 半径方向(外向き法線)に測定線を張ってサブピクセルの エッジを取り、最小二乗の円フィットで中心と半径を出し直す。

穴径・ピン径の検査、円形部品の中心出しに使う。

n の目安(2026-09-15 実測、ぼけ σ=1 px の合成円板): 偏りは n に依らない (R=8〜128 px、n=6〜240 で ±0.005 px 以内で一定。偏り自体は縁の丸みで −0.09 → −0.006 px と R に依る)。効くのは散らばりで、雑音 σ=0.03 のとき std·√n は 円周の標本間隔 2πR/n が 約 3 px 以上なら一定(= 標本が独立、std ∝ 1/√n)、 それより密にしても下がらない(R=16: n=40 で 0.0174、n=240 で 0.0164 px)。 つまり n ≈ 2πR / 3(R=20 で 40 = 既定、R=64 で 130、R=128 で 270)より 多くしても時間が増えるだけ(n=1000 で 22 ms)。円周の 25 % が欠けていると n を増やしても偏りは直らない(−0.005 → −0.020 px)。欠けた側で縁が見つからない だけなら rms はむしろ下がり(0.051 → 0.018)、欠けの境界で偽の縁を拾えば rms が跳ねる —— 欠けは rms だけでは見えないので edge_points の本数も 門にする(examples/example_inner_diameter_mm.py)。参照半径のずれは measure_length(既定 ±6 px)が上限で、+5.5 px は通り +6.5 px で params=None。

空の入力(model が空の dict)は ValueError。

詳しい使い方ガイド

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(scalar を入力に取れる)

—

同カテゴリ(model)

create_metrology_model · add_metrology_object_line_measure · add_metrology_object_rectangle2_measure · add_metrology_object_ellipse_measure · add_metrology_object_generic


Provenance: metrology.py — MEASURE1D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

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