freeform op• Datenarten: bspline_surface × image2d × image2d → image2d
• Aufruf: import fullseye as fs; fs.ledger.eval_bspline_surface(tck, x, y, grid=False) (die Implementierung direkt: import bspline_surf; bspline_surf.eval_bspline_surface(tck, x, y, grid=False); aus dem Register: ops3d.get("eval_bspline_surface"))
Wertet eine angepasste Fläche tck aus (bisplev). Zwei Modi: verstreute Punkte (Standard) oder ein Gitter.
tck : list
Das von fit_bspline_surface zurückgegebene [tx, ty, c, kx, ky].
x, y : array_like
grid=False (Standard): gestreute/korrespondierende Punkte gleicher shape. Wertet an jedem (x[i], y[i]) aus und
gibt z mit derselben shape wie die Eingabe zurück (Messung = Flächenhöhe an jeder Stichprobenposition).
grid=True: behandelt x, y als aufsteigende 1-D-Achsen und wertet auf dem Tensorgitter
(len(x), len(y)) aus (für dichte Visualisierung und Neuabtastung).
grid : bool
Auswertungsmodus. Für punktweise Vergleiche wie Flächenresiduen False.
z : numpy.ndarray
Bei grid=False dieselbe shape wie x, bei grid=True (len(x), len(y)).
ValueError
Wenn tck kein Flächenmodell ([tx,ty,c,kx,ky]) ist (einschließlich Kurven-tck / Polynom-dict)
oder x, y nicht übereinstimmende shapes haben bzw. leer sind.
Ergänzung:
• Bei grid=True werden x, y intern aufsteigend sortiert, dann wird bisplev aufgerufen und das Ergebnis in der Eingabereihenfolge zurückgegeben. out[i, j] ist also immer der Wert bei (x[i], y[j]); auch absteigend übergebene Achsen machen nichts kaputt.
• grid=False ist eine Python-Schleife, die bisplev pro Punkt aufruft, und wird proportional zur Punktzahl langsamer. Viele Punkte möglichst mit grid=True auswerten.
• Außerhalb des Knotenbereichs (Bereich der für den Fit verwendeten x, y) wird extrapoliert; diese Werte sind nicht garantiert.
• Der Rückgabewert ist float64. Bei grid=False dieselbe shape wie x (ein Skalar ergibt ein 0-dimensionales Array).
• Typisch: fit_bspline_surface → dieses op (Neuabtastung, Visualisierung). Für die Residuenbewertung ruft surface_residual es intern auf.
• 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.
• bspline_freeform — py -3.11 examples_3d/bspline_freeform.py
image2d als Eingabe)fuse_to_voxel · fit_poly_surface · eval_poly_surface · surface_form_error · background_flatten · polar_unwrap · fit_zernike · matcap_shade
freeform)fit_bspline_surface · surface_residual · fit_bspline_curve · eval_bspline_curve
*Provenance: bspline_surf.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.