descriptor op• Data kinds: efdmodel → pairs
• Call: import fullseye as fs; fs.ledger.reconstruct(model, n_points=300, n_harmonics=None) (to call the implementation directly, import fourierdesc; fourierdesc.reconstruct(model, n_points=300, n_harmonics=None); from the registry, opsshape2d.get("reconstruct"))
Reconstructs a contour from EFD coefficients ((M,2)).
If n_harmonics is smaller than the number of coefficients, it is smoothed by truncating the harmonics (the fewer low orders kept, the rounder).
Formula: for t = linspace(0, 1, n_points, endpoint=False), x(t) = a0 + Σ a_n cos(2πnt) + b_n sin(2πnt), y(t) = c0 + Σ c_n cos(2πnt) + d_n sin(2πnt) (n = 1..N).
• model: return value of elliptic_fourier (coeffs (N, 4), a0, c0). Passing coefficients that went through normalize gives the contour in canonical pose (aligned by the 1st harmonic). The dict is not validated (a missing key gives KeyError).
• n_points: number of output points M (truncated to int). Equally spaced in the parameter, not equally spaced in arc length. Since endpoint=False, the last point does not coincide with the first (to make a closed polygon, append the first point at the end). With 0, an empty (0, 2).
• n_harmonics: number of harmonics used. None for all; values larger than N are truncated to N; 0 or less gives DC only (all points at the centre (a0, c0)).
• Returns: (M, 2) float64. The coordinate order ((x, y) or (row, col)) is inherited as passed to elliptic_fourier. t = 0 corresponds to the start point of the original contour.
To merely smooth a contour without turning it into coefficients, fourier_smooth. Comparing coefficients with each other: invariants / descriptor_distance.
• shape_description_2d family guide
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• contour_fourier — py -3.11 examples/contour_fourier.py
pairs as input)elliptic_fourier · fourier_smooth · contour_fourier_complex · add_frame_corners · warp_tps_image · warp_piecewise_affine · morph · morph_sequence
descriptor)elliptic_fourier · invariants · normalize · descriptor_distance · fourier_smooth · from_xld · contour_fourier_complex · contour_epicycle_chain
*Provenance: fourierdesc.py — SHAPE2D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.