RdF: codage d'un contour

<< Code R | Liste des exercices | Réduction d'une chaîne de contour >>

Descripteurs de Fourier

Calculer les descripteurs de Fourier du contour contenu dans le fichier rdf-carre-80.txt en utilisant la fonction fft de R, normalisée en divisant par le nombre de points. Vérifier qu'une transformée de Fourier inverse permet de reconstituer exactement le contour initial.

A quoi correspond le descripteur de Fourier Z0 d'une forme décrite par son contour? Vérifier son influence en additionnant une constante complexe au descripteur Z0 avant de reconstruire le contour par transformation inverse.

Filtrage des descripteurs de Fourier

Pour rendre le codage d'une forme plus compact, on va éliminer certains des descripteurs de Fourier en les annulant. Écrire une fonction rdfAnnuleDescFourier, ayant comme paramètres:

  • desc un vecteur de descripteurs de Fourier précédemment calculé;
  • ratio une valeur réelle comprise entre 0 et 1.

Cette fonction renvoie un vecteur de même dimension que desc, mais donc certaines composantes ont été annulées. Le ratio de coefficients annulés est indiqué par le deuxième paramètre:

  • quand ratio vaut 1, aucun descripteur n'est annulé;
  • quand ratio vaut 0, tous les descripteurs retournés sont nuls;
  • une valeur de ratio autre indique la proportion de descripteurs qui sont annulés dans le vecteur (ex: 0.5 indique que la moitié des descripteurs sont annulés).

Utiliser cette fonction sur les descripteurs calculés sur le carré dont le contour comporte 80 points. Vérifier que le contour reconstitué se simplifie quand on augmente le nombre de descripteurs annulés, c'est à dire quand on rend la signature plus compacte.