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 :

Avi à partir d'images jpeg


Sujet :

Images

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 32
    Points
    32
    Par défaut Avi à partir d'images jpeg
    Bonjour à tous,
    J'ai un petit souci dans un script... que je n'ai pas écrit, mais que j'ai modifié (si peu) afin qu'il colle avec ce que je veut faire. Tout est dans le titre, j'ai des images, et je j'ai besoin de faire un film... J'ai trouvé un scritp qui avait l'air bien, mais il me dit que la variable m ... n'est pas : "??? Undefined function..." Si quelqu'un voit ou ca cloche!? merci par avance.
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    close all
    clear all
     
    aviobj = avifile('C:\Program Files\MATLAB\R2006b\work\CSD\1.avi','compression','none')
     
    fpath= 'C:\Program Files\MATLAB\R2006b\work\CSD\';
    imglist= dir([fpath 'frame*.jpg']);				% edit path/filename to match your images' location
     
    % default-parameters:
    fps= 15;														% frames per second
    fname= 'C:\Program Files\MATLAB\R2006b\work\CSD\1.avi';						% path/name of movie output file
     
    % create movie:
    for k = 1:length(imglist);
        [img cmap] = imread([fpath imglist(k).name]);% get current frame
        %cmap=colormap(jet);
        m(k)= im2frame(img, cmap);
        if rem(k, 100) == 0
            disp([num2str(k) ' frames processed...'])
            %		drawnow
        end
    end
     
    aviobj = addframe(aviobj,m)
    aviobj=close(aviobj);
     
    % create avi:
    movie2avi(m, fname, 'compression', None);
     
    % play result:
    movie(m, 1, fps)

  2. #2
    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
    Bonjour,

    peux-tu nous montrer le message d'erreur complet?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 32
    Points
    32
    Par défaut Avi à partir d'images jpeg
    Bonjour et merci pour le déplacement!
    voici le message total apres entrée du nom de ma fonction (nb:non visible auparavant)
    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
    18
    19
    20
    21
    22
    23
    24
    >> jpeg2avi
    Warning: Closing all open AVI files. It is no longer possible to write to any previously open AVI files.
    Adjustable parameters:
                   Fps: 15.0000
           Compression: 'None'
               Quality: 75
        KeyFramePerSec: 2.1429
             VideoName: 'C:\Program Files\MATLAB\R2006b\work\CSD\1.avi'
     
    Automatically updated parameters:
            Filename: 'C:\Program Files\MATLAB\R2006b\work\CSD\1.avi'
         TotalFrames: 0
               Width: 0
              Height: 0
              Length: 0
           ImageType: 'Unknown'
        CurrentState: 'Open'
     
    ??? Undefined function or variable "m".
     
    Error in ==> jpeg2avi at 34
    aviobj = addframe(aviobj,m)
     
    >>
    Merci par avance!

  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
    Tout d'abord, cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imglist= dir([fpath 'frame*.jpg']);
    peut s'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imglist= dir(fullfile(fpath,'frame*.jpg'));
    Pour le message d'erreur, a priori, le programme ne rentres pas dans la boucle for, donc la variable m n'est jamais créée, ce qui veut dire que imglist est vide...

    Es-tu sûr d'avoir des images jpg dans le dossier C:\Program Files\MATLAB\R2006b\work\CSD\ dont le nom commence par frame?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 32
    Points
    32
    Par défaut Avi à partir d'images jpeg
    oui effectivement, j'ai 3 images, frame1.jpeg, frame2...
    J'ai corrigé la ligne permettant de trouver les images!
    A part ça, pour entrer dans la boucle il n'y a pas besoin d'introduire k avant??
    voici la dernière version :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    function jpeg2avi
     
    % JPEG2AVI
    % create avi-movie from single frames (jpeg-images)
    % Author: P. Knott, 06 May 2004
    % frames/images:
     
    close all
    clear all
     
    aviobj = avifile('C:\Program Files\MATLAB\R2006b\work\CSD\1.avi','compression','none')
     
    fpath= 'C:\Program Files\MATLAB\R2006b\work\CSD';
    imglist= dir(fullfile(fpath,'frame*.jpg'));			% edit path/filename to match your images' location
     
    % default-parameters:
    fps= 15;														% frames per second
    fname= 'C:\Program Files\MATLAB\R2006b\work\CSD\1.avi';						% path/name of movie output file
     
    % create movie:
    for k = 1:length(imglist);
        [img cmap] = imread([fpath imglist(k).name]);% get current frame
        %cmap=colormap(jet);
        m(k)= im2frame(img, cmap);
        if rem(k, 100) == 0
            disp([num2str(k) ' frames processed...'])
            %		drawnow
        end
    end
     
    aviobj = addframe(aviobj,m)
    aviobj=close(aviobj);
     
    % create avi:
    movie2avi(m, fname, 'compression', None);
     
    % play result:
    movie(m, 1, fps)
    Merci!

  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
    Alors l'extension est jpeg et non jpg (j'aurais dû mieux lire ton titre...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imglist= dir(fullfile(fpath,'frame*.jpeg'));
    Pour le k : pas besoin de le définir avant, la variable est créée au moment de la boucle for.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 32
    Points
    32
    Par défaut Avi à partir d'images jpeg
    Merci beaucoup! Ca fonctionne beaucoup mieux comme ça!
    Sans vouloir abuser, j'ai une dernière interrogation... plus esthétique qu'autre chose, mais étant donné le nombre de fichiers que je vais avoir à traiter, ca risque rapidement d'être "le bordel", j'ai donc essayé d'envoyer le film dans 1 repertoire qui lui est destiné à chaque fois, mais là, ca beug...! j'ai remué ça dans tous les sens.... je doit être à coté de la plaque! Merci en tout cas

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    function jpeg2avi(filename)
     
    % JPEG2AVI
    % create avi-movie from single frames (jpeg-images)
    % Author: P. Knott, 06 May 2004
    % frames/images:
     
    aviobj = avifile('C:\Program Files\MATLAB\R2006b\work\CSD\MoviesData\temp.avi','compression','none');
     
    %Images location
    fpath = 'C:\Program Files\MATLAB\R2006b\work\CSD\MoviesData\',filename,'\CSD'; 
    imglist= dir(fullfile(fpath,'frame*.jpeg'));			% edit path/filename to match your images' location
     
    % default-parameters:
    fps= 15;														% frames per second
    fname = 'C:\Program Files\MATLAB\R2006b\work\CSD\MoviesData\',filename, '.avi';						% path/name of movie output file
     
     
     
    % create movie:
    for k = 1:length(imglist);
        [img cmap] = imread([fpath imglist(k).name]);% get current frame
        %cmap=colormap(jet);
        m(k)= im2frame(img, cmap);
        if rem(k, 100) == 0
            disp([num2str(k) ' frames processed...'])
            %		drawnow
        end
    end
     
    aviobj = addframe(aviobj,m);
    aviobj=close(aviobj);
     
    % create avi:
    movie2avi(m, fname, 'compression', 'None');
     
    % play result:
    movie(m, 1, fps);
    Il me renvoi une erreur du type..
    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
    18
    19
    fpath =
    C:\Program Files\MATLAB\R2006b\work\CSD\MoviesData\
     
    filename =
    test.txt
     
    fname =
    C:\Program Files\MATLAB\R2006b\work\CSD\MoviesData\
     
    filename =
    test.txt
     
    ??? Undefined function or variable "m".
     
    Error in ==> jpeg2avi at 31
    aviobj = addframe(aviobj,m);
     
    Error in ==> CSD at 10
    jpeg2avi(filename);   INAL
    Je crois qu'il n'aime pas mes filename...!

  8. #8
    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
    Les 2 lignes pour concatener les chemins vers les répertoires ou fichiers sont fausses (fpath et fname). Heureusement que je t'ai montré la fonction fullfile... Utilise fullfile pour concaténer les noms dans les 2 cas...

    Par contre d'après ton affichage, filename est 'test.txt'. Tu as un dossier qui s'appelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\MATLAB\R2006b\work\CSD\MoviesData\test.txt\CSD
    ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 32
    Points
    32
    Par défaut Avi à partir d'images jpeg
    Bonjour, oui effectivement, je découvre un peu la syntaxe dans ce type de situation... je ne me suis pas trop penché sur fullfile... j'ai fait quelques modifications mais ça coince toujours. En fait, ce que je cherche à faire, c'est lire des images dans un dossier \filename et sauver l'avi dans le dossier parent... Je ne sais pas si c'est compliqué, et si je suis sur la bonne voie...?

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    function jpeg2avi(filename)
     
    % JPEG2AVI
    % create avi-movie from single frames (jpeg-images)
    % Author: P. Knott, 06 May 2004
    % frames/images:
     
    aviobj = avifile('C:\Program Files\MATLAB\R2006b\work\CSD\MoviesData\temp.avi','compression','none');
     
    %Images location
    fpath = dir(fullfile('C:', 'Program Files', 'MATLAB', 'R2006b', 'work', 'CSD', 'MoviesData',filename, 'CSD')); 
    imglist= dir(fullfile(fpath,'frame*.jpeg'));            % edit path/filename to match your images' location
     
    % default-parameters:
    fps= 15;                                                        % frames per second
    fname = dir(fullfile('C:', 'Program Files', 'MATLAB', 'R2006b', 'work', 'CSD', 'MoviesData',filename, '.avi'));                        % path/name of movie output file
     
     
     
    % create movie:
    for k = 1:length(imglist);
        [img cmap] = imread([fpath imglist(k).name]);% get current frame
        m(k)= im2frame(img, cmap);
        if rem(k, 100) == 0
            disp([num2str(k) ' frames processed...'])
        end
    end
     
    aviobj = addframe(aviobj,m);
    aviobj=close(aviobj);
     
    % create avi:
    movie2avi(m, fname, 'compression', 'None');
     
    % play result:
    movie(m, 1, fps);
    et voici l'erreur qu'il me décerne cette fois-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ??? Failed to open file.
     
    Error in ==> avifile.avifile at 171
    aviobj.FileHandle = avi('open',filename);
     
    Error in ==> jpeg2avi at 8
    aviobj = avifile('C:\Program Files\MATLAB\R2006b\work\CSD\MoviesData\temp.avi','compression','none');
     
    Error in ==> CSD at 10
    jpeg2avi(filename);   INAL

  10. #10
    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 fullfile, tu n'as pas besoin de tout décomposer. Sinon je crois que tu t'es mélangé les pinceaux entre dir et fullfile...

    Sauf erreur tu pourrais faire quelque chose comme cela :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    function jpeg2avi(filename)
     
    % JPEG2AVI
    % create avi-movie from single frames (jpeg-images)
    % Author: P. Knott, 06 May 2004
    % frames/images:
     
    directory = 'C:\Program Files\MATLAB\R2006b\work\CSD\MoviesData\';
     
    aviobj = avifile(fullfile(directory,'temp.avi'),'compression','none');
     
    %Images location
    fpath = fullfile(directory,filename, 'CSD'); 
    imglist= dir(fullfile(fpath,'frame*.jpeg'));            % edit path/filename to match your images' location
     
    % default-parameters:
    fps= 15;                                                        % frames per second
    fname = fullfile(directory,filename, '.avi'));                        % path/name of movie output file
     
     
    % create movie:
    for k = 1:length(imglist);
        [img cmap] = imread([fpath imglist(k).name]);% get current frame
        m(k)= im2frame(img, cmap);
        if rem(k, 100) == 0
            disp([num2str(k) ' frames processed...'])
        end
    end
     
    aviobj = addframe(aviobj,m);
    aviobj=close(aviobj);
     
    % create avi:
    movie2avi(m, fname, 'compression', 'None');
     
    % play result:
    movie(m, 1, fps);

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 32
    Points
    32
    Par défaut
    Merci, oui, ca simplifie les choses et évite les erreurs de frappe... par contre avec ce script matlab me ramène à une erreur qui à un gout de déjà vu..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ??? Undefined function or variable "m".
     
    Error in ==> jpeg2avi2 at 30
    aviobj = addframe(aviobj,m);
     
    Error in ==> CSD at 10
    jpeg2avi2(filename);   INAL
     
    >>
    Il n'arrive pas à entrer dans la boucle une fois de plus..?
    NB : le temp.avi est bien créé, même s'il est vide, et j'ai bien un dossier sous "MoviesData" qui s'appele "test.txtCSD" contenant pleins de fichiers "frame1.jpeg" et ainsi de suite...
    finalement, je ne vois pas d'où viens le problème

  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
    Alors il est temps d'apprendre à utiliser les outils de debuggage (je ne vois pas ou peut être l'erreur).

    Tu vas donc placer un breakpoint dans ton programme a la ligne de la boucle for. Pour cela dans l'éditeur de tes fichiers .m, à gauche du texte et à droite du numéro de ligne il y a des tirets : clic sur le tiret correspondant à la ligne ou se trouve "for k = 1:length(imglist);". Un joli disque rouge va apparaitre confirmant qu'un breakpoint a été placé.

    Ensuite lance ta fonction comme tu le faisais auparavant, la fonction va s'arrêter au niveau du breakpoint, c'est à dire que le programme est en pause et tu as accès à toutes les variables qui sont crées avant le breakpoint dans cette fonction.

    Donc tu peux facilement regarder le contenu des variables : par exemple dans le command window, tape fpath et regarde si le chemin correspond bien au chemin du ton repertoire ou sont stocké les fichiers.

    A la fin du debuggage (si tu as trouvé la source de l'erreur ou si tu veux supprimer le breakpoint), pour retirer le breakpoint, clic sur le disque rouge (le fait de fermer MATLAB supprime aussi tous les breakpoint)

    J'ai juste fait une introduction sur les outils de debugage, mais je t'encourage à apprendre à les utiliser, cela permet de debugger rapidement les programmes.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 32
    Points
    32
    Par défaut
    Merci, c'est sympa comme petit truc! Je crois que je m'en servirai souvent à l'avenir (j'ai souvent des beugs...).

    Et finalement il y a un truc qui parait ne pas coller, c'est le nom du dossier où se trouvent les images et le nom du fichier avi, un slash s'intercale après filenament, cela sort comme ça :

    fname 'C:\Program Files\MATLAB\R2006b\work\CSD\MoviesData\test.txt\.avi'
    fpath 'C:\Program Files\MATLAB\R2006b\work\CSD\MoviesData\test.txt\CSD'

    Ce qui fait qu'effectivement, ca passe pas...
    Alors maintenant...? Est-ce possible de créer un dossier avec le filename directement suivi de CSD ou de l'extension avi sans le slash...?
    Merci, c'est top

  14. #14
    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
    Ok, effectivement, c'est moi qui ai fait une erreur : il faut concaténer les noms de répertoires avec fullfile et faire une concaténation de chaîne de caractères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fname = [fullfile(directory,filename)  '.avi'];

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 32
    Points
    32
    Par défaut
    Bon... c cool, après 2..3 bricolages, ça fonctionne. Malgré tout, je suis un éternel insatisfait... à votre avis vers quelle type de démarche (fonction) devrais-je me diriger afin de pouvoir afficher (en transparence au premier plan de la vidéo... pendant toute sa durée) une image fixe avec par exemple les contours d'une structure... sur la base d'une image (jpeg aussi par exemple)???
    Merci beaucoup pour ce sacré coup de main
    Je met le script final, si ça peut sauver quelqu'un un jour...!
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    function jpeg2avi(filename)
     
    directory = 'C:\Program Files\MATLAB\R2006b\work\CSD\MoviesData\';
     
    aviobj = avifile(fullfile(directory,'temp.avi'),'compression','none');
     
    %Images location
    fpath = [fullfile(directory,filename) 'CSD'];    %,'CSD'
    imglist= dir(fullfile(fpath,'frame*.jpeg'));            % edit path/filename to match your images' location
     
    % default-parameters:
    fps= 15;                                                        % frames per second
    fname = [fullfile(directory,filename) '.avi'];                        % path/name of movie output file
     
    % create movie:
    for k = 1:length(imglist);
        [img cmap] = imread([fpath '\' imglist(k).name]);% get current frame
        m(k)= im2frame(img, cmap);
        if rem(k, 100) == 0
            disp([num2str(k) ' frames processed...'])
        end
    end
     
    aviobj = addframe(aviobj,m);
    aviobj=close(aviobj);
     
    % create avi:
    movie2avi(m, fname, 'compression', 'None');
     
    % play result:
    %movie(m, 1, fps);

  16. #16
    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
    Je ne suis pas sûr d'avoir compris ce que tu veux faire... peux-tu préciser? donner un exemple?

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 32
    Points
    32
    Par défaut
    Ok... j'avais peur d'avoir été peu clair, à raison...
    Mon film est constitué d'un enchainement d'images, en fausses couleurs... représentant des variations du potentiel (électrique) au niveau d'un tissu biologique (une tranche de cerveau.. peu importe)... J'aimerai faire apparaitre pendant toute la durée de mon film, un masque avec quleques contours de structures de certaines partie du cerveau par exemple (matérialisée par un simple trait noir... que j'aurai préalablement déssiné sur une image sous paint... pourquoi pas..!). L'image masque serait en fait transparente (sauf les traits noirs) avec en dessous (superposé) le film qui déroule, mettant donc plus visiblement en évidence les structures et les modifications du potentiel rapportées à ces structures...
    Peut être suis-je plus clair ainsi...? ou pas!

  18. #18
    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
    Plutôt que de chercher à fusionner les 2 images (video et masque), je chercherais plutôt à incruster ton contour dans l'image de la vidéo. Le principe n'est pas très compliqué :
    • Dans MATALB, tu récupère les coordonnées des points appartenant à ton contour créé sous photoshop
    • Pour chacune de ces coordonnées, dans l'image de la vidéo, tu remplaces les valeurs RGB par une couleur fixe.

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 32
    Points
    32
    Par défaut
    Ok, c'est vu d'un angle totalement différent, et finalement ça me parait beaucoup plus accessible que mon idée! Merci encore pour tout et... vive la science

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

Discussions similaires

  1. [Débutant] Construire un fichier avi à partir d'images bmp
    Par Auteur dans le forum MATLAB
    Réponses: 6
    Dernier message: 03/08/2010, 14h24
  2. [VTK] Sortie MPEG à partir d'images JPEG
    Par wassimb dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 01/02/2010, 17h19
  3. Réponses: 1
    Dernier message: 16/12/2008, 18h42
  4. Récupérer une image JPEG à partir d'une vidéo
    Par kurul1 dans le forum C++Builder
    Réponses: 8
    Dernier message: 09/08/2006, 10h51
  5. [Débutant][Image] créer un Image à partir d'un .jpeg
    Par molusk dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 07/07/2005, 11h26

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