[spline] Existe-t-il des méthodes/librairies permettant de tracer des splines en Java ?
Bonjour,
Je suis sur un projet d'analyse d'images. Les méthodes d'analyses sont développées par un collègue mathématicien sous Scilab (équivalent libre de Matlab), et je suis chargée d'adapter ces méthodes pour en faire un logiciel Java.
Dans la chaine de traitement, il utilise les fonction lsq_spline et interp de Scilab qui calcul et récupère des splines cubiques des moindre carré.
Savez vous s'il existe des équivalents de ces fontions en Java ?
Mon collègue me dit que le calcul et le tracé de spline sont des trucs super commun, donc je serais étonnée qu'il n'existe pas des librairies qui s'en occupe. Mais je ne sais pas dans quelle direction chercher... :aie:
tout conseil seront bienvenue :mrgreen:
merci d'avance
PS : je ne savais pas trop où mettre ce post, n'hésitez pas à le déplacer si besoin est ;)
Existe-t-il des méthodes/librairies permettant de récupérer TOUS les points des splines en Java ?
Il n'y a rien de compliqué à "ça" comme tu dis, j'étais déjà arrivé à un code similaire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
int num = 0;
PathIterator iter = spline.getPathIterator(null);
float[] points = new float[6];
System.out.println("spline");
while(!iter.isDone())
{
num ++;
switch ( iter.currentSegment(points) )
{
case PathIterator.SEG_MOVETO:
System.out.println("MOVETO => Coordonnees point "+num+" : ["+points[0]+", "+points[1]+"]");
break;
case PathIterator.SEG_LINETO:
System.out.println("LINETO => Coordonnees point "+num+" : ["+points[0]+", "+points[1]+"]");
break;
case PathIterator.SEG_CUBICTO :
System.out.println("CUBICTO => Coordonnees point "+num+" : ["+points[0]+", "+points[1]+"]" +
", [" + points[2]+", "+points[3]+"]"+", [" + points[4]+", "+points[5]+"]");
break;
case PathIterator.SEG_QUADTO :
System.out.println("QUADTO => Coordonnees point "+num+" : ["+points[0]+", "+points[1]+"]" +
", [" + points[2]+", "+points[3]+"]");
break;
}
iter.next();
} |
Mais ce que je dis, c'est que ça ne répond pas à ma problématique : je veux récupérer TOUS les points de la courbe, et ce code ne permet de récupérer que les points de contrôle ! (sache quand même que par acquis de conscience j'ai aussi testé ton code qui donne le même résultat).
Mon but n'est pas de tracer la courbe (enfin pas dans un premier temps), mais d'utiliser l'ensemble des points pour faire d'autres traitements. Donc un tableau ou une liste ne contenant que les points de control ne me sert absolument à rien.
L'autre solution serait de récupérer la fonction correspondant à la courbe tracée, mais je n'ai pas trouvé de moyen de le faire non plus.
ça fait maintenant une semaine que je suis sur cette problèmatique et j'en suis arrivée à la conclusion que les cubicCurves ne permettent que de dessiner des courbes.
Donc je cherche d'autres moyens d'arriver à mes fins, ce qui passera peut être par l'implémentation de notre propre Classe de calcul de spline, ou par l'utilisation des fonctions Scilab codées en C via JNI ou JNA...
Bref, pas que du bonheur en perspective.
Je laisse ce post ouvert, car je n'exclue pas la possibilité d'être passé à côté de quelque chose, d'avoir loupé une librairie existante ou même une méthode des cubicCurves.