reflection_symmetry_score — 3D symmetry op

• 資料種類:points → measurement

• 呼叫: import fullseye as fs; fs.ledger.reflection_symmetry_score(points, plane_point, plane_normal)(要直接呼叫實作,import symmetry3d; symmetry3d.reflection_symmetry_score(points, plane_point, plane_normal);從台帳取用則 ops3d.get("reflection_symmetry_score"))

用法

反射對稱得分 = chamfer(鏡像, 原) / 最近鄰間距中位數(越小越對稱,尺度不變)。→ float。

用 reflect_points 將點雲對平面做鏡射,計算與原點雲的對稱 Chamfer 距離(chamfer_distance:

雙向最近鄰距離平均的平均),再除以原點雲最近鄰間距的中位數。這是「鏡像相對原始點偏離了幾倍點間距」的無因次量,因此座標乘以常數倍後值不變。

• points:(N,3) 點雲。plane_point / plane_normal:候選平面(法線在內部正規化)。

• fail-closed(失敗即拒絕):點雲為空、不是 (N,3)(chamfer_distance 拋出 ValueError)、所有點重合導致間距無法定義(ValueError)。僅當重複點使中位數間距為 0 時,以到質心的 RMS 半徑 × 1e-12 作為下限。

閱讀注意:即使是嚴格對稱的形狀,鏡像點也不會與原始取樣點完全重合,因此分數不會為 0,而是以點間距左右為下限(實測值見 detect_reflection_symmetry 的表)。與其用閾值決定取捨,不如掃掠多個候選,看最小值及其與第 2 名之差(margin)。想嘗試 PCA 3 軸以外的候選面時,直接以平面參數掃掠本函式。

參考(範例資料、文獻)

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

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

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

• dl_mesh_symmetry — py -3.11 examples_3d/dl_mesh_symmetry.py

• reflection_symmetry — py -3.11 examples_3d/reflection_symmetry.py

型別可銜接的下一個運算子(可接受 measurement 作為輸入)

vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle

同類別(symmetry)

detect_reflection_symmetry · detect_rotational_symmetry · reflect_points


*Provenance: symmetry3d.py — 3D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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