descriptor op• Datenarten: pairs → matrix
• Aufruf: import fullseye as fs; fs.ledger.contour_fourier_complex(points, n_harmonics=None, parametrisation='index') (die Implementierung direkt: import fourierdesc; fourierdesc.contour_fourier_complex(points, n_harmonics=None, parametrisation='index'); aus dem Register: opsshape2d.get("contour_fourier_complex"))
• GPU: nein (nur CPU-Referenzimplementierung)
Wandelt eine geschlossene Kontur in die Koeffizienten einer komplexen Fourier-Reihe um — z(t) = Σ c_k exp(2πi k t).
Argumente:
Punkte: (N,2) geschlossene Konturscheitelpunkte. (Zeile, Spalte) Reihenfolge (wie „fourierdesc“).
n_harmonics: Verbleibende Ordnung K(|k| <= K). „Keine“ bis zum darstellbaren Maximum.
Parametrisierung: "index" = Den Punktindex zu einem Parameter mit gleichem Abstand machen /
"arclength" = Bogenlänge und vor der Konvertierung in gleichen Abständen erneut eingeben.
Rückgabewert: Normalerweise „(2K+1, 3)“ oder ein reales Array („Matrix“) von „(2K, 3)“, um gerade Punkte bis zum Nyquist-Grad zu belassen. Die Zeile lautet „[k, Re c_k, Im c_k]“. „k“ ist „0, 1, -1, 2, -2, …“ (von niedriger Frequenz).
★Der Schlüssel zu dieser Operation liegt nicht darin, stillschweigend zu entscheiden, wie die parametrischen Variablen verwendet werden sollen. ungleichmäßig abgetastet Durch das Lesen der Kontur mit „index“ wird den Bereichen mit dichten Punkten zusätzliche Zeit zugewiesen. Die Bilder sind ähnlich, aber die Koeffizienten sind unterschiedlich (Tatsächlich war der Koeffizient für „k=3“ 47-mal unterschiedlich). Der Standardwert ist „Index“ (die Grundbedeutung von FFT). Wenn Sie ihn jedoch als Formbeschreibung verwenden, Wählen Sie „Bogenlänge“.
★★Wenn Sie „Bogenlänge“ auswählen, wird die Kontur innerhalb von op neu gezeichnet, sodass die zurückgegebenen Koeffizienten entsprechend sind Schreiben Sie die neu gezeichnete Kontur anstelle des übergebenen Arrays. Deshalb contour_fourier_truncation_energy sagt „für neu gezeichnete Konturen“ voraus Es ist streng, und wenn der Aufrufer den Fehler mithilfe des vorliegenden Arrays misst, stimmt er nicht überein (tatsächliche Messung: 512 Punkte, Abweichung von 1,15). Wenn Sie eine genaue Vorhersage für das vorliegende Array wünschen, geben Sie zuerst die Bogenlänge erneut ein Rufen Sie es mit „index“ auf.
★Das Zurücksetzen der Bogenlänge ist nicht idempotent: Da die Proben mit einer Schnur zusammengebunden sind, sind die Konturen der Bogenlänge bereits gleich. Verschiebt den Punkt noch einmal auf 3,73 px (durchschnittlich 0,84 px) und erhöht die Länge um weitere 3,25 % Schrumpfen. Rufen Sie nicht zweimal an.
• Leitfaden zur Familie shape_description_2d
• 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.
• poc_one_stroke_epicycles — py -3.11 examples/poc_one_stroke_epicycles.py
matrix als Eingabe)contour_epicycle_chain · contour_fourier_truncation_energy
descriptor)elliptic_fourier · reconstruct · invariants · normalize · descriptor_distance · fourier_smooth · from_xld · fit_circle_xld
*Provenance: fourierdesc.py — SHAPE2D 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.