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 :

Sélection de données en fonction de leur nom


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Par défaut Sélection de données en fonction de leur nom
    Bonjour à tous, j'ai un petit soucis d'utilisation de Matlab (sisi je vous assure!).

    Voici mon problème :

    - Je dois réaliser une acquisition d'image via la toolbox du même nom et processer les données (chaque image, une par une, afin d'utiliser "en temps réel" les informations). J'utilise actuellement un timer, pour régler le framerate, de l'ordre de 10-15fps et donc un appel de fonction périodique.

    - Afin de pouvoir faire un gros traitement d'image à chaque appel de fonction, tout en restant au dessus de 8fps (rêvons un peu, travaillons après !), je me dois d'optimiser à fond mon process de données.

    - La question n'est pas quel est le process, ou comment l'optimiser... du moins pas pour le moment . En effet, j'ai remarqué que pour enregistrer mes différentes données/images avant process/images après process/ ... , j'utilisais des
    dans mon process de données. Je me suis par ailleurs rendu compte qu'en les supprimant, je pouvais gagner du temps (offfff course me direz-vous). Mais voilà, maintenant, dans mon current directory, c'est vraiment le souck.

    Je voulais savoir si vous n'aviez pas une idée/fonction à me conseiller, afin par exemple, de "trouver" les fichiers contenant certains caractères pour les envoyer dans un répertoire spécifique. Comme cela, je peux faire ce travail une fois le timer terminé (et pas à la main)

    En vous remerciant d'avance,

    nicolas

  2. #2
    Expert confirmé
    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
    Par défaut
    Je ne suis pas sur d'avoir réellement bien compris la question.
    Mais ce qu'il est important de savoir c'est que la plupart du temps (voire toujours) CD est inutile car les fonctions prenant en paramètre un nom de fichier peuvent gérer le nom "complet" du fichier (c'est-à-dire avec son arborescence de répertoire).

    Exemple au lieu de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    retour = pwd;
    cd toto
    img=imread('fichier.tif');
    cd(retour);
    Il vaut mieux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fichier = fullfile(pwd,'toto','fichier.tif');
    img = imread(fichier);
    Ensuite la suivante pourra peut-être t'intéresser :
    Comment lister les fichiers d'une certaine extension dans un répertoire ?

  3. #3
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Par défaut
    Citation Envoyé par Caro-Line Voir le message
    Je ne suis pas sur d'avoir réellement bien compris la question.
    Mais ce qu'il est important de savoir c'est que la plupart du temps (voire toujours) CD est inutile car les fonctions prenant en paramètre un nom de fichier peuvent gérer le nom "complet" du fichier (c'est-à-dire avec son arborescence de répertoire).

    Exemple au lieu de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    retour = pwd;
    cd toto
    img=imread('fichier.tif');
    cd(retour);
    Il vaut mieux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fichier = fullfile(pwd,'toto','fichier.tif');
    img = imread(fichier);
    Ensuite la suivante pourra peut-être t'intéresser :
    Comment lister les fichiers d'une certaine extension dans un répertoire ?
    Merci tout d'abord pour ta réponse Caro-Line. Je vais essayer de reformuler ma question :

    Soit des fichiers dans mon current directory.

    image1.jpg
    ...
    image10.jpg
    imageblackwhite1.jpg
    ...
    imageblackwhite10.jpg
    imagemodifiéeblackwhite1.bmp
    ...
    imagemodiféeblackwhite10.bmp
    variabletableau1
    ...
    variabletableau5
    variableautretype1
    ...
    variableautretype5


    j'aimerais rechercher toutes les imagemodifée.bmp pour les bouger dans un autre dossier au nom plus explicite. Si je ne le fais pas dès l'enregistrement et la création de l'image, c'est pour gagner du temps sur les cd afin de ne pas faire "cd..." à chaque fois que je veux enregistrer une sorte d'image et/ou variable comme par exemple :

    cd('monchemin\image')
    image = ...
    ...
    cd('monchemin\imagemodifiée')
    imagemodifée=...
    ...
    cd('monchemin\')
    variable=...
    ...
    etc etc

    Je suis par ailleurs tombé sur la faq en parcourant le forum. C'est un début intéressant, je vais essayer de m'en servir mais je ne suis pas sur d'y arriver. We'll see

  4. #4
    Expert confirmé
    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
    Par défaut
    Citation Envoyé par nicoo04 Voir le message
    Si je ne le fais pas dès l'enregistrement et la création de l'image, c'est pour gagner du temps sur les cd afin de ne pas faire "cd..." à chaque fois que je veux enregistrer une sorte d'image et/ou variable
    C'est ce que j'ai expliqué précédemment tu n'as pas besoin de faire de CD.
    Tu peux donner directement le nom du répertoire en paramètre.

    Montre-nous ton code avec lequel tu enregistres et on pourra te montrer comment enregistrer dans le bon répertoire sans faire de CD.


    Maintenant si tu veux déplacer des images déjà existantes, tu utilises DIR puis MOVEFILE.

    Par exemple on veut déplacer les images nommées **modif**.bmp de monchemin vers 'monchemin\imgmodif' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dmodif = dir(fullfile('monchemin','*modif*.bmp');
    dirdest = fullfile(monchemin','imgmodif');
    for k=1:length(dmodif)
       movefile(fullfile('monchemin',dmodif(k).name),dirdest);
    end

  5. #5
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Par défaut
    Merci Caro-Line pour tes réponses et ton morceau de code. Je l'ai un peu retouché pour coller à ce qu'il me fallait. Je le poste au cas où des gens se poseraient le même genre de question, ou juste pour avoir un exemple... Here it is :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function [] = deplacer()
    %DEPLACER Summary of this function goes here
    %   Detailed explanation goes here
    date=datestr(clock,'mmm.dd,yyyy HH.MM.SS'); % Voici la date. Notez que Matlab n'aime pas les ":"
     
    dmodif = dir(fullfile('/Users/nico/Documents/MATLAB/Barcelona','*05.BMP')); % Sauvegarde sous le nom "dmodif" de la localisation de toutes les images dont le nom se termine par 05.BMP (attention les majuscules), se trouvant dans le répertoire Barcelona.
    dirdest = fullfile('/Users/nico/Documents/MATLAB/Barcelona',date,'imgmodif'); % Voici le répertoire vers lequel je veux les envoyer. 
    mkdir(dirdest); % Créer le répertoire
    for k=1:length(dmodif)  % On bouge les fichiers 1 à 1 en parcourant la boucle 
       movefile(fullfile('/Users/nico/Documents/MATLAB/Barcelona',dmodif(k).name),dirdest);
    end
     
    end

    Encore merci pour ton aide

    EDIT : à noter comme résolu. Je ne sais pas si ça doit être un modo qui doit s'en charger...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/02/2014, 15h09
  2. [XL-2007] Comment lier différents classeur en fonction de leur nom ?¨
    Par Blizard dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 08/01/2012, 19h03
  3. Script shell copie fichier en fonction de leur nom
    Par Borowsky dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 09/12/2009, 09h27
  4. Splitter des données en fonction de leur signe
    Par Shurka dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/12/2007, 15h41

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