add_metrology_object_circle_measure — MEASURE1D model op

• 資料種類:metrologymodel → scalar

• 呼叫: import fullseye as fs; fs.ledger.add_metrology_object_circle_measure(model, row, col, radius, n: 'int' = 40) -> 'int'(要直接呼叫實作,import metrology; metrology.add_metrology_object_circle_measure(model, row, col, radius, n: 'int' = 40) -> 'int';從台帳取用則 opsmeasure1d.get("add_metrology_object_circle_measure"))

用法

新增圓量測物件(add_metrology_object_circle_measure)。

把參考圓(中心 (row, col)、半徑 radius [px])堆疊到 model["objects"] (原地更新 dict)。apply_metrology_model 在把圓周 n 等分的角度上放置點,在各點沿半徑方向(外法線)拉出量測線,取得次像素邊緣,用最小平方圓擬合重新求出中心與半徑。

• radius: 參考半徑 [px]。與實物的偏差必須落在 apply 的 measure_length (預設 ±6 px)以內 —— 超出範圍的邊緣找不到。

• n: 圓周上的取樣數(預設 40)。半徑越大的圓越應增加。

• 參數在此不做驗證(0 以下的半徑也能堆疊,但沒有意義)。

• 回傳值: 新增位置的 index(從 0 開始)。apply 結果的 params 為 row / col / radius,rms 為距圓的徑向殘差 [px]。

用於孔徑、銷徑的檢查以及圓形零件的定心。

n 的參考值(2026-09-15 實測,模糊 σ=1 px 的合成圓盤):偏差與 n 無關(R=8〜128 px、n=6〜240 時固定在 ±0.005 px 以內。偏差本身因邊緣圓化隨 R 變化,−0.09 → −0.006 px)。n 影響的是離散:雜訊 σ=0.03 時,只要圓周上的取樣間隔 2πR/n 約 3 px 以上,std·√n 就保持固定(= 樣本獨立,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。

詳細使用指南

• subpixel_measuring 族使用指南

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

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

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• example_inner_diameter_mm — py -3.11 examples/example_inner_diameter_mm.py

• poc_calipers_under_illusion — py -3.11 examples/poc_calipers_under_illusion.py

• poc_dimensional_inspection — py -3.11 examples/poc_dimensional_inspection.py

• poc_telecentric_metrology — py -3.11 examples/poc_telecentric_metrology.py

型別可銜接的下一個運算子(可接受 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 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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