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 :

enregistrement film .avi à partir de contourf


Sujet :

MATLAB

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 65
    Points : 41
    Points
    41
    Par défaut enregistrement film .avi à partir de contourf
    Bonjour,

    Je souhaite créer un .avi afin d'avoir un film qui montre l'évolution du champ de Température sur un domaine.

    J'ai codé ceci :

    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
     
     
    aviobj=avifile(adresse_film); %creates AVI file
     
    for ....      %je calcule mon champ de T° dans cette boucle
            ylabel('Epaisseur du film [m]');
            xlabel('Largeur du film [m]');
            title('Evolution des Températures dans le film');
            contourf (x,y,T(:,:,1)); colormap(jet); colorbar;
            image=getframe;
            aviobj=addframe(aviobj,image); %adds frames to the AVI file 
     
    end
     
    aviobj=close(aviobj); %closes the AVI file
    Ce que j'ai codé fonctionne, mais pas exactement comme je le souhaiterais.
    D'abord, il n'enregistre pas ma "colorbar" ni le titre du graph ou le titre des axes, et je souhaite qu'ils soient affichés sur mon film.

    Ensuite, le "getframe" ne prend pas forcement mon image, mais il prend ce que j'ai d'affiché à l'écran. Ca signifie que pour faire mon film, je ne peux rien faire d'autre, et ca m'ennuie :p

    Que puis-je faire?

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    GETFRAME par défaut prend les axes courant :
    Citation Envoyé par help getframe
    GETFRAME returns a movie frame. The frame is a snapshot
    of the current axis.
    Si tu veux qu'il prenne la figure en entier il faut lui donner le handle de celle-ci.
    Citation Envoyé par help getframe
    GETFRAME(H) gets a frame from object H, where H is a handle
    to a figure or an axis.
    Si tu n'en as qu'une tu peux utiliser GCF.

    Ensuite évite d'utiliser IMAGE comme nom de variable c'est le nom d'une fonction de MATLAB, tu pourrais avoir des soucis.
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 65
    Points : 41
    Points
    41
    Par défaut
    Merci de ta réponse caro-line

    GCF fonctionne bien dans mon cas, mais j'ai toujours mon problème de getframe

    Du coup, j'ai voulu ruser en ecrivant directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aviobj=addframe(aviobj,gcf); %adds frames to the AVI file
    Mais maintenant, j'en ai une toute petite (image hein )

    Que faire ?

  4. #4
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Euh non c'est à GETFRAME qu'il faut mettre GCF en arguement pas à ADDFRAME
    Ceci dit ADDFRAME a effectivement l'air d'accepter aussi directement un handle, donc pourquoi pas.

    Par contre je ne m'étais effectivement pas attardée dessus dans mon 1er post mais :
    le "getframe" ne prend pas forcement mon image, mais il prend ce que j'ai d'affiché à l'écran
    Je ne vois pas ce que entends par là.
    Pourrais-tu nous mettre l'image que tu obtiens et celle que tu voudrais ?
    Règles du Forum

    Adepte de la maïeutique

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 65
    Points : 41
    Points
    41
    Par défaut
    En fait, le getframe fait un printscreen. Donc, en plein de milieu de mon film de Température, on voit que je joue à antbuster (jeu très sympa, mais ca fait pas crédible :p )

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Oui mais normalement il ne fait un printscreen que de ta figure, non ?
    Ton jeu () est au-dessus de ta figure ?

    Là à part ne rien faire pendant que le programme tourne, je ne vois pas

    Mais ça me semble bizarre parce que normalement GETFRAME devrait ramener la figure au 1er plan lorsqu'il "prend la photo".
    Règles du Forum

    Adepte de la maïeutique

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 65
    Points : 41
    Points
    41
    Par défaut
    Oui mais normalement il ne fait un printscreen que de ta figure, non ?
    Ton jeu () est au-dessus de ta figure ?
    Oui, quand je joue, ou si je surfe juste sur le net, la figure est en arrière plan. Le getframe prend en photo tout ce qui est en avant de ma figure.

    Là à part ne rien faire pendant que le programme tourne, je ne vois pas
    Je vais faire ce que tu me suggère, ne rien faire :p Je vais peut-etre même rentrer chez moi du coup ! :p

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/10/2007, 17h46
  2. Enregistrer une image à partir d'Excel
    Par Dom91 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2007, 10h47
  3. Créer un fichier avi à partir du flux video d'une webcam
    Par fred7163 dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/03/2007, 11h39
  4. recherche d'1 moyen créer AVI à partir BMP
    Par j.p.mignot dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 06/02/2006, 20h11
  5. Enregistrements multiples renvoyés à partir d'une excécution
    Par Didier100 dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/07/2004, 15h25

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