Bonjour,
Comment on choisi la position des points de contrôle lorsque l'on approxime un contour par une spline ?
Merci
Christophe
Bonjour,
Comment on choisi la position des points de contrôle lorsque l'on approxime un contour par une spline ?
Merci
Christophe
ça dépend de ta spline et du type d'interpolation que tu veux mettre en place.
https://fr.wikipedia.org/wiki/Spline#Splines_cubiques
Je n'ai aucune idée de la solution, mais je réfléchis à voix haute :
- Tu as une forme qui peut être plus ou moins tordue. J'imagine qu'on est en dimension 2.
Et concrètement, tu connais une série de points qui sont à la frontière de cette forme. Ou éventuellement, tu connais une série de points qui sont "intérieurs", et une autre série de points qui sont "extérieurs". Selon l'option 1 ou l'option 2, le problème sera différent. Tu es dans l'option 1 ou dans l'option 2 ?
- Tu veux construire une spline qui représente au mieux ce contour. Donc une spline fermée (et de préférence une spline qui se ferme, non pas avec un angle entre le début et la fin de la spline, mais une spline "dérivable").
- Et la grosse difficulté qui vient s'ajouter à cela, c'est que pour définir une spline, il faut des sommets, et malheureusement, la spline ne passe pas par les sommets. Gggrrrrrrr.
Pire, la spline ne passe pas par les sommets qui servent à la définir, sauf les sommets n°1 et n° N.
- Problème supplémentaire : Pour définir une spline, on a besoin de n sommets. Si on se limite à 4 ou 5 sommets, on aura une forme rudimentaire ; si on s'autorise 10 / 20 / 30 sommets, on va pouvoir avoir des formes beaucoup plus affinées ; sur quel critère on va arbitrer entre la spline de base, ou la spline raffinée, plus fidèle au contour d'origine. Dans mes anciens cours de stats, sur la classification, on parlait de variance expliquée // variance exogène, comment cela va-t-il se traduire ici ? A quel moment on va dire : Ok, en ajoutant un sommet à ma spline, j'améliore la conformité au contour de base, mais l'amélioration devient marginale.
PS : même si au final, le besoin est de dessiner un contour sur une image, je pense que la question serait mieux dans le forum "algorithmes".
N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.
la plupart des problèmes que tu site sont corrigé avec une implémentation dite smoothpath
ton contour est decrit par une suite de spline de dégrée 3 (tu peux donc forcer le passage par certain point en définissant ces points comme étant P1 ou P4 de ton polygone de controle de ta spline courrante)
pour garder un aspect derivable entre tes spline tu force tes points de controle P3 P4 et P5 a etre aligné (tu as donc la derivé a gauche et a droite qui sont identique => derivable)
pour boucler ton contour il suffit de forcer le dernier point comme étant le premier
+1 avec gpcbitnik38
Et autant utiliser une spline de type interpolation (=qui passe par les points de contrôle) pour relier les points du contour.
Le plus simple étant de tracer chaque bout de spline par une approche paramétrique: (x,y) = Spline(t)
La plus connue:
https://en.wikipedia.org/wiki/Centri...ull–Rom_spline
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager