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 :

Affichage d'une image 3D


Sujet :

MATLAB

  1. #1
    Débutant
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Points : 97
    Points
    97
    Par défaut Affichage d'une image 3D
    Bonjour à tous,j'ai commencémon projet de mastère avec Matlab, cepndant dés le debut j'ai rencontré une problème.
    J'ai installé la verson 7.7 du matlab t j'a essayé d'exécuter un code qui permet d'afficher un visage 3d mais ça marche pas malgré que le driver de ma carte graphiqe es bien installé.
    J'ai déjà testé ce code sur d'autres ordianters et ça marce convenablement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    function [fring]=f(fname,It,t)
     
    [vertex, face] = read_wrl(fname); 
    vertex =vertex' ;   
    face= face';     
     
    dispface(vertex,face);  
     
    return;
    Mon ordinateur est un portable Lenovo 3000 N200.

  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 160
    Points
    53 160
    Par défaut
    Citation Envoyé par fraisa1985 Voir le message
    ça marche pas
    Il nous faut plus d'information... que se passe-t-il exactement ?
    Y-a-t-il un message d'erreur ?
    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
    Débutant
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Points : 97
    Points
    97
    Par défaut
    merci pour votre réponse, non il n-y-a aucune message d'erreur juste une image vide (Figure vide)

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Salut,

    d'où vient la fonction dispface? C'est une fonction à toi ou tu l'as trouvé sur le net?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Débutant
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Points : 97
    Points
    97
    Par défaut
    c'est moi qui le nommé je suis désolé de ne pas vous passer cette inforatin dés le debut.
    j'ai essayé d'analyser le code ligne par ligne et j'ai remarqué sue l'erreur se trouve dans cette instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    patch('vertices',vertex,'faces',face,'facecolor',cf,'edgecolor',ce);
    Toute information sera le bie venue et merci d'avance.

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Dans ta fonction f, as-tu vérifié que vertex et face ne sont pas des vecteurs vides?

    En exécutant le code ligne par ligne, affiche face et vertex avant d'appeler dispface pour vérifier qu'ils ne sont pas vide, et si ils ne sont pas vide, affiche ces 2 vecteurs avant d'exécuter patch.

    Après si ils ne sont pas vides, ça peut aussi venir de cf et ce que tu utilises dans la fonction patch (peu probable mais on ne sait jamais). Mais comme tu donnes les infos sur ton code au compte goutte, ça va être difficile de t'aider efficacement...
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  7. #7
    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 160
    Points
    53 160
    Par défaut
    Peux-tu nous montrer ce que retourne la fonction WHOS juste avant le PATCH :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    whos
    patch('vertices',vertex,'faces',face,'facecolor',cf,'edgecolor',ce);
    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)

  8. #8
    Débutant
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par magelan Voir le message
    Dans ta fonction f, as-tu vérifié que vertex et face ne sont pas des vecteurs vides?

    En exécutant le code ligne par ligne, affiche face et vertex avant d'appeler dispface pour vérifier qu'ils ne sont pas vide, et si ils ne sont pas vide, affiche ces 2 vecteurs avant d'exécuter patch.

    Après si ils ne sont pas vides, ça peut aussi venir de cf et ce que tu utilises dans la fonction patch (peu probable mais on ne sait jamais). Mais comme tu donnes les infos sur ton code au compte goutte, ça va être difficile de t'aider efficacement...
    merci pour votre réponse j'ai testé tout ces variables et aucun de ces variables n'est vide

  9. #9
    Débutant
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par Dut Voir le message
    Peux-tu nous montrer ce que retourne la fonction WHOS juste avant le PATCH :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    whos
    patch('vertices',vertex,'faces',face,'facecolor',cf,'edgecolor',ce);
    voila qu'est ce que j'ai obtenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
      Name            Size             Bytes  Class     Attributes
     
      ce              1x3                 24  double              
      cf              1x3                 24  double              
      face        14636x3             351264  double              
      vertex       7700x3             184800  double

  10. #10
    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 160
    Points
    53 160
    Par défaut
    Tu pourrais sauvegarder ces quatre variables dans un fichier mat et attacher ce fichier à un message (en le mettant dans une archive zip ou rar avant) ?
    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)

  11. #11
    Débutant
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Points : 97
    Points
    97
    Par défaut
    j'ai essayé mais la problèmes que les variables face et vertex sont trop volumineux et j'ai pas réussi à les extraires tout, y-a t-il une fonction qui me permet de stocker directement ces variables dans une fichier .

  12. #12
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Salut,

    fais (à mettre juste avant la fonction patch) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    save file ce cf face vertex

    tes données seront stocké dans le fichier file.mat, et tu pourras alors le mettre en pièce jointe.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  13. #13
    Débutant
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Points : 97
    Points
    97
    Par défaut
    voila le fichier que vous avez demandé
    Fichiers attachés Fichiers attachés

  14. #14
    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 160
    Points
    53 160
    Par défaut
    Le visage apparaît parfaitement si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    load file
    figure('doublebuffer','on');
    patch('vertices', vertex, ...
        'faces',face, ...
        'facecolor',cf, ...
        'edgecolor','none',...
        'facelighting','gouraud');
    axis equal
    camlight
    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)

  15. #15
    Débutant
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Points : 97
    Points
    97
    Par défaut
    Merci beaucoup pur votre aide , lorsque j'ai ajouté le deux instructions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    axis equal
    camlight
    j'ai eu un visage pointillé et lorsque j'ai substitué mon insctruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    patch('vertices',vertex,'faces',face,'facecolor',cf,'edgecolor',ce);
    par votre instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    patch('vertices', vertex,'faces',face,'facecolor',cf,'edgecolor','none','facelighting','gouraud');
    j'ai eu l'image d'un visage 3D que je le cherche.
    Pouvez-vous m'expilquer la première instruction (elle permet de faire quoi axis equal et camlight ) ainsi que la deuxième(quels sont les pramètres que vous l'avez ajouté et ils sert à quoi faire) avec des détails s'il vous plaît.
    Merci d'avance pour votre aide

  16. #16
    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 160
    Points
    53 160
    Par défaut
    Citation Envoyé par fraisa1985 Voir le message
    Cette commande met les trois axes (x,y,z) à la même échelle. Il suffit de l'enlever pour voir que le visage se déforme...
    C'est utile lorsque l'on représente des données géométrique réelles (comme un visage par exemple).

    Citation Envoyé par fraisa1985 Voir le message
    Ceci ne fait qu'ajouter un effet de lumière... en fait j'aurais dû utiliser LIGHTING ici mais tu peux chercher "Camera Tools" dans la documentation... tu trouveras des outils de visualisation très utiles.



    Citation Envoyé par fraisa1985 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    patch('vertices', vertex,'faces',face,'facecolor',cf,'edgecolor','none','facelighting','gouraud');
    La valeur None pour EdgeColor rend les arêtes invisibles.

    Pour la valeur Gouraud de la propriété FaceLighting, il suffit de se reporter à la documentation de la fonction LIGHTING comme je l'ai déjà mentionné précédemment.
    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. [Tomcat] Affichage d'une image
    Par david71 dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 15/02/2005, 12h37
  2. Réponses: 2
    Dernier message: 27/12/2004, 10h23
  3. Pbs d'affichage d'une image sur un panel
    Par ysr1 dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/09/2004, 10h55
  4. [FLASH MX] Qualité d'affichage d'une image
    Par n_tony dans le forum Flash
    Réponses: 3
    Dernier message: 16/08/2004, 10h44
  5. Affichage d'une image sous linux
    Par Braim dans le forum x86 32-bits / 64-bits
    Réponses: 5
    Dernier message: 25/03/2003, 11h41

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