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

Images Discussion :

[quiver] Visualiser un gradient entre deux images


Sujet :

Images

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Points : 45
    Points
    45
    Par défaut [quiver] Visualiser un gradient entre deux images
    Bonjour a tous,

    J'aurais une question sur la fonction "quiver"! J'ai lu la doc concernant cette fonction mais en fait pour ce que j'ai a faire je ne sais pas si elle va convenir (il ne me semble pas). Je voudrais tracer les vecteurs de déplacement (déplacement a partir de deux images) sur une nouvelle figure. J'ai en ma possession une matrice qui m'indique où il y aurait eu d'éventuel déplacements.
    On utilise "quiver" avec le gradient mais avec des matrices, est-ce possible?

    Autrement, y a til une autre fonction?

    Merci

    JP

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [r,c] = meshgrid(1:30);
     
    r = r - 15;
    c = c - 15;
     
    d = sqrt(r.^2+c.^2);
    [fx,fy] = gradient(d);
     
    figure
    imagesc(d)
    hold on
    quiver(r(:)+15,c(:)+15,fx(:),fy(:))
    axis equal tight off
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Points : 45
    Points
    45
    Par défaut
    OK, pour ce que tu m'as montré, mais mon souci c'est que je voudrais afficher seulement certains vecteurs à des endroits particuliers mais je ne sais pas comment faire, je n'ai pas de fonctions, c'est ça mon problème. je ne travaille qu'avec des matrice. Il faudrait que j'arrive a afficher un vecteur sur ce pixel la par exemple, ou a cette coordonnée la.

    Merci

    JP

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Je ne vois pas le problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    [r,c] = meshgrid(1:30);
    
    r = r - 15;
    c = c - 15;
    
    d = sqrt(r.^2+c.^2);
    [fx,fy] = gradient(d);
    
    figure
    imagesc(d)
    hold on
    
    idx = randperm(numel(r));
    idx = idx(1:100);
    
    quiver(r(idx)+15,c(idx)+15,fx(idx),fy(idx))
    axis equal tight off
    Ou alors montre nous ton code... ou du moins tes matrices
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Points : 45
    Points
    45
    Par défaut
    en fait j'ai une grosse matrice de ce style:

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [0   0   0   0   0   99
    0   99 99  0   0  99
    99  0   0   0   0   0
    0    0   0   0   0   0]
    Et je voudrais dire: quand il y a le nombre 99 afficher un vecteur dans le sens de la disposition des nombres.

    Deja est ce possible?

    Merci

    JP

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Citation Envoyé par jp_developpeur Voir le message
    afficher un vecteur dans le sens de la disposition des nombres.
    Mais encore...
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par Dut Voir le message
    Mais encore...
    En fait, mon principal soucis concerne la création des vecteurs à un endroit précis de la matrice (où il y a un nombre 99). Le nombre 99 correspond à l'origine du vecteur. Ensuite, pour la direction des vecteurs, on va dire qu'il y a déplacement de gauche à droite et de bas en haut pour simplifier. S'il y a un ensemble de nombres 99 alignés horizontalement (resp. verticalement), il y aura déplacement de gauche à droite (resp. de bas en haut).

    Merci

    JP

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Dans un premier temps, tu peux utiliser la fonction FIND pour localiser les valeurs 99 :

    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

Discussions similaires

  1. calcul de gradient entre deux images
    Par enita dans le forum Images
    Réponses: 5
    Dernier message: 28/05/2013, 13h14
  2. [FLASH MX] Fondu entre deux images
    Par yanng dans le forum EDI/Outils
    Réponses: 4
    Dernier message: 06/04/2010, 09h33
  3. Compter pixels différents entre deux images
    Par hiccup dans le forum OpenGL
    Réponses: 5
    Dernier message: 13/03/2007, 14h26
  4. Différence entre deux images
    Par Mookie dans le forum 2D
    Réponses: 3
    Dernier message: 13/04/2006, 15h46
  5. [PIL] Difference entre deux images
    Par t_om84 dans le forum Calcul scientifique
    Réponses: 4
    Dernier message: 26/12/2005, 12h45

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