Bonjour,
Je voudrai à partir d'une fonction discrète I(k) défini pour 0<=k<=N, déterminer la valeur de I(x) pour un x réel dans [0,N] , et ce par interpolation B-Spline.
Pour le moment, voici la formule que j'utilise pour l'interpolation :
où:
Bn(.) : Fonction BSpline d'ordre n.
S(x) représente le support de x, càd les voisins de x qui seront pris en considération pour le calcul de I(x). La taille du support dépend ainsi de l'ordre d'interpolation n.
Petite application numérique:
Pour calculer I(5.8) avec une interpolation cubique n=3
Le support de 5.8 représente ainsi l'ensemble des points "discrets" ayant une distance inférieur ou égal 2 par rapport à x=5.8, soit :
S(x) = {4,5,6,7}.
ainsi I(5.8) = I(4).B(5.8-4) + I(5).B(5.8-5) + I(6).B(5.8-6)+ I(7).B(5.8-7).
Est-ce correct selon vous?
En lisant un document je suis tombé sur une formule différente que je n'arrive pas à comprendre :
I(x) n'est donc pas calculé directement à partir des I(k) mais à partir des c(k). Cependant je ne vois pas comment calculer les c(k) dans mon casDans cette équation (n) est le degré du spline, ou l'ordre de l'interpolation, et les c(k) sont des coéficients donnés par les points discrets I(k) du signal en fonction de Bn. Ils peuvent être calculés par filtres récursif
Source : Recalage multimodal et plate-forme d'imagerie médicale à accès distant-Page 62.
Partager