transform op• Datenarten: image2d → table
• Aufruf: import fullseye as fs; fs.ledger.abel_inverse_image(image, dr: 'float' = 1.0, *, center: 'float | None' = None, method: 'str' = 'onion') -> 'dict' (die Implementierung direkt: import mathtransforms; mathtransforms.abel_inverse_image(image, dr: 'float' = 1.0, *, center: 'float | None' = None, method: 'str' = 'onion') -> 'dict'; aus dem Register: opsmath.get("abel_inverse_image"))
Macht aus einem seitlich aufgenommenen Bild eines achsensymmetrischen Objekts (vertikal = Richtung der Symmetrieachse, horizontal = Abstand von der Achse) durch zeilenweise inverse Abel-Transformation ein Schnittbild.
Fotos von Flammen, Plasmen oder Strahlen zeigen nur die entlang der Tiefe aufsummierte Projektion. Jede Zeile wird an der Mittelspalte in links und rechts geteilt, die 2 Hälften werden gemittelt (gleicht Links-Rechts-Asymmetrie aus) und dann invers Abel-transformiert. center ist die Spalte der Symmetrieachse (Standard = Helligkeitsschwerpunkt, 1 für das ganze Bild, nicht pro Zeile). Rückgabewert {"slice", "center", "asymmetry"} —— slice ist f(z, r) der Form (H, R), asymmetry ist die Größe der Differenz zwischen linker und rechter Hälfte (je näher an 0, desto eher gilt die Annahme der Achsensymmetrie).
Gate: aus der Projektion eines 3-D-Gauß-Klumpens wird der Gauß-Querschnitt zurückgewonnen (geschlossene Form).
Jeder mathops-Operator prüft seine Eingabe vor der Berechnung (nichts rutscht stillschweigend durch):
• Komplexe Eingaben lösen ValueError aus — die Umwandlung nach float64 verwirft den Imaginärteil stillschweigend (numpy meldet nur eine ComplexWarning und liefert eine plausibel aussehende, falsche reelle Zahl). Schreiben Sie .real/.imag/abs() explizit oder nutzen Sie complexops.
• Masked Arrays mit maskierten Elementen lösen ValueError aus — die implizite Umwandlung, die die Maske abstreift und die Rohwerte darunter verwendet, wird abgelehnt. Geben Sie explizit an, ob gefüllt oder verworfen wird.
• NaN/Inf löst bei jeder Eingabe ValueError aus (mit Anzahl abgelehnt — es pflanzt sich durch das gesamte Ergebnis fort).
• Formen sind strikt: 1-D und 2-D werden nie implizit hochgestuft oder gebroadcastet (eine Matrix im Vektor-Slot oder ein Vektor im Matrix-Slot löst ValueError aus; reshapen Sie explizit).
• Größenobergrenze: Operatoren, die eine Matrix nehmen, sowie die stat_histogram-Bins lösen jenseits von mathops.MAX_ELEMENTS (2^26 ≈ 67 Mio. Elemente) ValueError aus.
• Leitfaden zur Familie math_metrology
• 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.
• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.
• transforms_tour — py -3.11 examples/transforms_tour.py
table als Eingabe)dynsys_poincare_section · dwt_inverse · chebyshev_eval_nd
transform)abel_transform · abel_inverse · abel_revolve · hankel_transform · tf_poles_zeros · tf_freq_response · tf_impulse_response · tf_step_response
*Provenance: mathtransforms.py — MATH 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.