IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Intersection Droite Spline


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 23
    Par défaut Intersection Droite Spline
    Bonjour,
    J'aurai besoin de votre aide, mon problème est le suivant :
    J'ai une spline exprimée sous la forme d'une matrice PS de dimension 6217*2 contenant les points de la spline en chaque pixel d'une image. J'ai une droite définie par un point de coordonnées (Vx Vy) et un vecteur de coordonnées (Nx Ny). Je cherche à trouver l'intersection des deux mais je n'y arrive pas.
    J'ai essayé le code suivant mais je ne comprends pas pourquoi il ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find (Ny/Nx * PS(:,1) + Vy-Ny/Nx*Vx-PS(:,2)==0)
    Si un point de PS vérifie l'équation de la droite, il devrait me le trouver non? Et pourtant, il ne trouve aucune solution.
    Merci de votre aide.

  2. #2
    Membre Expert
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Par défaut
    Bonjour,

    l'équation de la droite,
    Utilise plutôt une équation de la forme ax+by+c=0 (cas verticaux et horizontaux)

    en chaque pixel d'une image
    */ Les pixels étant discrets, il n'y aucune raison qu'un d'eux se trouve précisément sur la droite quand bien même sa version continue l'intersecterait. Tu peux chercher les points à une certaine distance de la droite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find( abs(ax+by+c)< precision )
    Par contre attention si tu cherches vraiment des solutions uniques. Rien n’empêche une fonction continue de faire n'importe quoi entre deux pixels. Ça serait quand même plus simple si tu avais l'équation/paramètres du spline et pas juste son évaluation sur une grille finie

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 23
    Par défaut
    Tout d'abord merci de ta réponse. En prenant ax+ b = y les cas horizontaux sont gérés, et le cas vertical n'arrive pas dans ma situation. Concernant la spline, je n'ai malheureusement que les points mais je vais essayer avec l'approximation voir ce que ça donne

    EDIT : ça marche parfait, merci!!

  4. #4
    Membre Expert
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Par défaut
    Il faut surement que tu fasses varier la précision.
    Lorsqu'elle augmentera, les solutions (s'ils y en a plusieurs) apparaitront progressivement, mais les zones détectées autour grandiront également. Il te faudra un critère pour savoir si plusieurs points viennent de la même solution (elles sont en nombre finies si c'est un spline), et une manière d’agréger les paquets venant d'une solution (moyenne, premier point à apparaitre...)

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 23
    Par défaut
    Oui oui mais j'ai déjà mon critère qui est que la distance entre le point sur la spline et le point fait partie de la définition de la droite doit être minimale donc c'est bon.
    Encore merci

  6. #6
    Membre Expert
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Par défaut
    Cela ne suffit pas en cas d'intersections multiples

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 23
    Par défaut
    Dans mon cas si parce que je n'ai tjs que 2 solutions (c'est une droite qui est quasi horizontale et elle intersecte un fémur.) et je veux toujours la solution la plus proche des 2.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Intersection droite cercle
    Par morind79 dans le forum Mathématiques
    Réponses: 3
    Dernier message: 03/09/2008, 13h50
  2. Réponses: 2
    Dernier message: 24/05/2008, 22h54
  3. [perfs] intersections droite/rectangle
    Par Nemerle dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 13/04/2008, 13h23
  4. Calculer point intersection droite
    Par cetiop dans le forum C
    Réponses: 7
    Dernier message: 21/01/2008, 23h26
  5. Intersection droite-plan
    Par Finch dans le forum OpenGL
    Réponses: 2
    Dernier message: 25/04/2005, 14h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo