symmetry op• Datenarten: points → measurement
• Aufruf: import fullseye as fs; fs.ledger.reflection_symmetry_score(points, plane_point, plane_normal) (die Implementierung direkt: import symmetry3d; symmetry3d.reflection_symmetry_score(points, plane_point, plane_normal); aus dem Register: ops3d.get("reflection_symmetry_score"))
Spiegelsymmetrie-Score = Chamfer(gespiegelt, Original) / der mediane Nächste-Nachbar-Abstand (kleiner ist symmetrischer; skaleninvariant). → float.
Spiegelt die Punktwolke mit reflect_points an der Ebene und teilt den symmetrischen Chamfer-Abstand zur ursprünglichen Punktwolke (chamfer_distance:
Mittel der Mittelwerte der Abstände zum nächsten Nachbarn in beide Richtungen) durch den Median des Abstands zum nächsten Nachbarn in der ursprünglichen Punktwolke. Es ist die dimensionslose Größe "um wie viele Punktabstände das Spiegelbild von den ursprünglichen Punkten abweicht", daher ändert eine konstante Skalierung der Koordinaten den Wert nicht.
• points: Punktwolke (N,3). plane_point / plane_normal: Kandidatenebene (Normale wird intern normiert).
• fail-closed: Punktwolke leer, nicht (N,3) (chamfer_distance wirft ValueError), alle Punkte identisch, sodass der Abstand undefiniert ist (ValueError). Nur wenn doppelte Punkte den Median-Abstand zu 0 machen, dient der RMS- Radius um den Schwerpunkt × 1e-12 als Untergrenze.
Lesehinweis: Selbst bei einer exakt symmetrischen Form fallen die gespiegelten Punkte nicht genau auf die ursprünglichen Abtastpunkte, daher wird der Score nicht 0; die Untergrenze liegt etwa beim Punktabstand (Messwerte siehe Tabelle bei detect_reflection_symmetry). Statt per Schwellwert über Annahme zu entscheiden, mehrere Kandidaten durchlaufen und das Minimum sowie den Abstand zu Platz 2 (margin) ansehen. Um Kandidatenebenen außerhalb der 3 PCA-Achsen zu testen, diese Funktion direkt über die Ebenenparameter durchlaufen.
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• dl_mesh_symmetry — py -3.11 examples_3d/dl_mesh_symmetry.py
• reflection_symmetry — py -3.11 examples_3d/reflection_symmetry.py
measurement als Eingabe)vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle
symmetry)detect_reflection_symmetry · detect_rotational_symmetry · reflect_points
*Provenance: symmetry3d.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.