fit_poly_surface — 3D surface_fit op

• Datenarten: image2d × image2d × image2d → poly_surface

• Aufruf: import fullseye as fs; fs.ledger.fit_poly_surface(x, y, z, degree=2) (die Implementierung direkt: import match3d; match3d.fit_poly_surface(x, y, z, degree=2); aus dem Register: ops3d.get("fit_poly_surface"))

Verwendung

Verstreute (x,y,z) → eine polynomiale Kleinste-Quadrate-Fläche z=f(x,y). Liefert model (coef/powers/degree/rms/pv).

Passt die Basis {x^i·y^j : i + j <= degree} (Anzahl der Terme (degree+1)(degree+2)/2; degree=1 ergibt eine Ebene mit 3 Termen, 2 eine Fläche 2. Ordnung mit 6 Termen) per lstsq an. x, y, z dürfen beliebige Form haben, sofern die Elementanzahl gleich ist (intern ravel; bei einem Gitter die Ausgabe von np.mgrid direkt übergeben).

Rückgabe-dict: coef (T,) Koeffizienten, powers das (i, j) jedes Koeffizienten (Term x**i * y**j), degree, rms das Residuum-RMS, pv Peak-to-Valley des Residuums (max − min). Einheit wie z.

• Bei weniger Punkten als Termen wird stillschweigend die Minimum-Norm-Lösung zurückgegeben. Große Beträge von x, y verschlechtern die Kondition bei hohen Ordnungen

(Koordinaten vorher zentrieren und normieren). Keine NaN-Prüfung.

Nachfolgend: mit eval_poly_surface(model, x, y) an beliebigen Punkten auswerten. Für ein Höhenfeld auf einem Gitter rufen surface_form_error / background_flatten dies intern auf.

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)

• contours_to_terrain — py -3.11 examples_3d/contours_to_terrain.py

Typkompatible Folge-Operatoren (nehmen poly_surface als Eingabe)

fuse_to_voxel · eval_poly_surface

Gleiche Kategorie (surface_fit)

eval_poly_surface · surface_form_error · background_flatten


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