fit_ellipsoid — 3D robust_fit op

• Datenarten: points → primitive

• Aufruf: import fullseye as fs; fs.ledger.fit_ellipsoid(points) -> 'dict' (die Implementierung direkt: import fit_primitives_ext; fit_primitives_ext.fit_ellipsoid(points) -> 'dict'; aus dem Register: ops3d.get("fit_ellipsoid"))

Verwendung

Passt algebraisch ein dreiachsiges Ellipsoid beliebiger Lage an eine Punktmenge an und liefert {center, axes, radii, residual}.

Löst die allgemeine Quadrik xᵀA x + b·x + c = 0 unter der Nebenbedingung 4J − I² = 1, die ein Ellipsoid garantiert, als verallgemeinertes Eigenwertproblem Sr v1 = λ C v1 (scipy.linalg.eig) (Li & Griffiths 2004). Jeder reelle Eigenvektor wird zu einem Ellipsoid rekonstruiert, und derjenige, der sich positiv definit (= als reales Ellipsoid) rekonstruieren lässt und das kleinste Residuum-RMS hat, wird übernommen (die Positiv-Definitheitsprüfung bei der Rekonstruktion ist selbst der exakte Ellipsoid-Test). Kein Startwert nötig, deterministisch, globale Lösung. Zur numerischen Stabilisierung wird die Punktwolke vor dem Lösen mit Schwerpunkt und RMS-Radius entdimensionalisiert und die Parameter werden in world-Koordinaten zurückgeführt.

Args:

points: (N,3) Punktwolke (mindestens 10 Punkte). Schutzlos gegenüber Ausreißern (bei Bedarf vorher Inlier auswählen).

Returns:

dict: {"center": (3,), "axes": (3, 3), "radii": (3,), "residual": float}.

Die Spalten von axes sind die Hauptachsen (Radius absteigend), radii die Radien (absteigend), residual das

Punkt-Fläche-Abstands-RMS der Taubin-Näherung.

Raises:

ValueError: fail-closed bei ungültiger Form / zu wenigen Punkten / keiner positiv definiten Ellipsoidlösung (ebene Entartung,

nicht-ellipsoidische Fläche, unzureichende Abdeckung) usw.

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• blas_threads_and_memory — Warum Matrixzerlegungen langsam sind — BLAS-Threads, Caches, Speicherlayout

Referenzen (Beispieldaten, Literatur)

• 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.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• fit_primitives_ext — py -3.11 examples_3d/fit_primitives_ext.py

Typkompatible Folge-Operatoren (nehmen primitive als Eingabe)

fuse_to_voxel · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line · distance_line_line · distance_segment_segment

Gleiche Kategorie (robust_fit)

ransac_plane · ransac_sphere · ransac_line · ransac_cylinder · fit_cone · fit_torus


*Provenance: fit_primitives_ext.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.