Wystarczy jakikolwiek szanujący się program matematyczny, np. Mathematica. Gotowy kod przedstawia się wtedy:
param[x_, m_, t_] :=
Module[{f, n = Length[x], nf},
f = Chop[Fourier[x]][[;; Ceiling[Length[x]/2]]];
nf = Length[f];
Total[Rationalize[2 Abs[f]/Sqrt[n] Sin[Pi/2 - Arg[f] + Range[0, nf - 1] t], .01][[;; Min[m, nf]]]]]
(* zamiana sygnału FD na wzory parametryczne x(t), y(t); przepisanie wzorów do postaci zjadliwej dla komputera;) *)
tocurve[Line[data_], m_, t_] := param[#, m, t] & /@ Transpose[data]
(* uzyskanie wzorów krzywej *)
img = Binarize[Import["C:\obrazek.png"]~ColorConvert~"Grayscale"~ImageResize~500~Blur~3]~ Blur~3;
(* wczytanie obrazka i przygotowanie go do obróbki; tj. pozbawienie kolorów i przeskalowanie *)
lines = Cases[Normal@ListContourPlot[Reverse@ImageData[img], Contours -> {0.5}], _Line, -1];
(* wydobycie krawędzi z obrazka *)
ParametricPlot[Evaluate[tocurve[#, 64, t] & /@ lines], {t, 0, 2 Pi}, Frame -> False, Axes -> False, PlotStyle -> {Black, Thick}]
(* wyświetlenie krzywej przy domyślnej wartości 64 deskryptorów *)
Ewentualnie, jeżeli jesteśmy bardziej cierpliwi, wszystko da się zakodować przy użyciu odpowiednich bibliotek (graficznych i matematycznych; no chyba że chcemy liczyć transformaty na piechotę). Dla zwykłego grafika problemem jest właśnie zastosowanie transformaty Fouriera - nie każdemu się chce, a czasami brakuje odpowiednio zakodowanego programu liczącego do tego (tu nie ma: "klik" i gotowe).