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 :

Accès à un paquet d'images spécifiques dans un répertoire spécifique


Sujet :

Images

  1. #1
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 129
    Points : 47
    Points
    47
    Par défaut Accès à un paquet d'images spécifiques dans un répertoire spécifique
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    AAMM=input('CHOISIR LE DOSSIER IMAGES A TRAITER, ANNEE,MOIS, EXP:9504 AAMM= ' ),fprintf('\n') 
     
    HH=input('CHOISIR L''HEURE A LAQUELLE LES IMAGES ONT ETE CAPTEES, 9H, 12H, 15H, EXP: 09,12,15, HH= ' ),fprintf('\n') 
     
    CC=input('CHOISIR LE CANAL DES IMAGES A TRAITER, VIS, INFR,VAP_EAU, CC= ' ),fprintf('\n') 
     
    REP= 'AA''MM''HH''CC'
     
    EXT= input('PRECISER L''EXTENTION DES FICHIERS, EXP: TIFF OU JPG OU .... EXT= ')
    chemin = fullfile(REP,EXT);
     
    list = dir(chemin);

  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
    Je suppose que tu veux qu'on te dise ce qu'on en pense ?

    1. C'est surement faux

    2. Tu devrais éviter d'écrire entièrement en majuscules, cela équivaut à crier, c'est malpoli

    3. Tu devrais regarder cette fonction pour sélectionner ton répertoire :
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 129
    Points : 47
    Points
    47
    Par défaut
    Bonjour

    Un faux geste et op, le message est posté avant que je le termine.
    D'accord, je commence par voir la doc que vous proposez avant tout.
    Pour les majuscules, c'est donc comme pour les 'chats en ligne', pour mon cas c'était des variables de Matlab. Désolé quand même
    Merci

  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
    Pour les majuscules ce dont je te parle ce sont tes phrases dans les INPUT.
    Pour un utilisateur ce n'est pas très agréable de se faire crier dessus, donc en général on fait des phrases "normales".
    Règles du Forum

    Adepte de la maïeutique

  5. #5
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 129
    Points : 47
    Points
    47
    Par défaut ACCES A UN PAQUETS D'IMAGES SPECIFIQUES DANS UN REPERTOIRE SPECIFIQUE
    Bonjour
    Voici un passage du code Matlab que j'ai élaboré en suivant la fonction uigetdir tel que vous l'avez préconisez.
    J'ai proposé un commentaire pour chaque ligne de code

    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
     Initilaisation
        clc ;
        clear all ;
     
    % ouvrir une boite de dialogue pour choisir un Dossier
     
    rep=uigetdir
     
     
    % retourne un nom complet à partir des répertoires et fichiers spécifiés. 
     
    chemin = fullfile(rep,'*.tif');
     
    % retourne un tableau de structures avec des champs:
    %    name 'liste des noms des fichiers'
    %    date 'date et heure de dernière modification'
    %    bytes 'espace mémoire occupé'
    %    isdir 'isdir =0 si c'est un répertoire; isdir=0 sinon'
     
    list = dir(chemin);
     
    for n = 1:numel(list)
     
       % G = imread(fullfile(rep,list(n).name),ext(3:end));
         G= imread(fullfile(rep,list(n).name));
    %

    Existe t il un moyen d'utiliser la fonction fullname sans l'argument précisant 'l'extension'

    et utiliser cette extension dans la fonction imread
    comme suit:
    % G = imread(fullfile(rep,list(n).name),ext(3:end));

    afin de prendre en compte tous les formats

    J'ai essayé mais j'ai un message d'erreur à chaque fois
    G pourrait elle être une matrice (bloc) de matrice car j'ai besoin d'accéder à chaque élément de toutes les matrices lues par exemple G1(1,1) .... Gn(1,1)?
    Mers remerciements anticipés

  6. #6
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 129
    Points : 47
    Points
    47
    Par défaut
    si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    chemin = fullfile(rep,'*.tif');
     
    list = dir(chemin);
     
    for n = 1:numel(list)
     
        G = imread(fullfile(rep,list(n).name));
    l

    la variable G enregistre la dernière image lue. Y a t il un moyen de recueillir toutes les martices générées dans cette boucle
    J'aurai besoin d'accéder aux éléments de chaque matrice par la suite?
    Merci

  7. #7
    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
    Règles du Forum

    Adepte de la maïeutique

  8. #8
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 129
    Points : 47
    Points
    47
    Par défaut
    Oui Merci, en effet, L'indexage d'un tableau de cellules s'effectue soit :

    * avec () pour récupérer la cellule
    * avec {} pour récupérer la valeur contenu dans la cellule.
    L'exemple fourni introduit les éléments du tableau manuellement.

    Pour mon cas, j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for n = 1:numel(list)
     
        G = imread(fullfile(rep,list(n).name));
     
     
    % concaténer les éléments de cette liste automatiquement donne
     
    img{1,n}=G
     
    end
    tout a bien marché, sachant que mes cellules sont de meme dim en plus

    Je désire à présent trouver une matrice mat_min dont les élément sont tel que:
    [nL,nG]=size(G)
    pour i=1:nL
    pour j=1:nC
    mat_min(i,j)= min(img{1,1}(i,j), =img{1,2}(i,j) ,....img{1,n}(i,j),)
    La difficulté est dans l'indexage automatique de img{1,k}, k=1:n à la position(i,j) de façon auto
    Merci

  9. #9
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 129
    Points : 47
    Points
    47
    Par défaut ACCES A UN PAQUETS D'IMAGES SPECIFIQUES DANS UN REPERTOIRE SPECIFIQUE
    Bonsoir
    'Necessity is the mother of invention':-)
    Je pense que j'ai trouvé la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    clear
    clc
    table=3
    for i=1:table
        G=input('G=');
       [nL,nC]=size(G);
       x{1,i}=G;
    end
    A titre d'exemple J'ai pris respectivement G=[ 2 3;5 4];G=[ 12 13;15 14];G=[ 22 23;25 24];
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    %[nL,nC]=size(G); 
    for m=1:nL
        for m=1:nL
        for n=1:nC
    for i=1:table
     
       mat(1,i)=x{1,i}(m,n);
    end
    A(m,n)=min(mat);
    end
     
    end
    J'utilise des keyboard pour le pas à pas et je trouve
    K>> A

    A =

    2 3
    5 4
    Je trouve que CQF trouver
    Que pensez vous de ma méthode??
    Merci

  10. #10
    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
    j'ai rien compris à ce que tu as voulu faire...

    Par contre vu ton code j'ai l'impression que tes images sont toutes de dimensions N*M (attention pour certains types d'images la dimension peut être n*m*3 auquel cas il faudra adapter ce que je vais dire, voir Gestion des Images)

    Dans ce cas il est inutiles d'utiliser un tableau de cellules, tu vas pouvoir tout stocker dans un tableau de doubles de taille N*M*nombre d'images :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    %Pour la pre-allocation on doit connaitre la taille de la 1ère image
    res = imread(fullfile(rep,list(1).name));
    [n,m] = size(res);
    nbImages = numel(list);
    img = zeros(n,m,nbImages);%tableau de zeros taille n*m*nbImages
    img(:,:,1)=res;
    for n = 2:nbImages
        img(:,:,n) = imread(fullfile(rep,list(n).name));
    end
    %Calcul des minimums entre chaque img(i,j,n)
    mat_min = min(img,[],3);%A vérifier : retourne les minimums selon la 3ème dimension
    Ceci ne fonctionnera que SI toutes les images sont de la même taille et à 2 dimensions, ce que tu sembles sous-entendre avec tes différents codes.
    Règles du Forum

    Adepte de la maïeutique

  11. #11
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 129
    Points : 47
    Points
    47
    Par défaut
    Bonsoir Caroline
    Tout d'abord merci pour toujours donner suite à mes préoccupations.
    Oui en effet, mes images sont toutes de même taille 776 par 974
    et parfois 388 par 487. Le traitement concerne toujours des images (un paquet) de même résolution
    Ce matin, justement, en faisant size d'une matrice image je suis tombée sur n*m*3. Que signifie ce '3'

    Pour votre message:"Ceci ne fonctionnera que SI toutes les images sont de la même taille et à 2 dimensions, ce que tu sembles sous-entendre avec tes différents codes".
    Vous faites allusion à mon code. Le votre introduit ce paramètre 3?
    dois je comprendre que mon code est bon pour des images de même dim?
    Merci

  12. #12
    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
    Pour l'explication du 3 dans n*m*3 il faut lire le lien que je t'ai donné sur la Gestion des images.

    Ton code ne fonctionnera pas je pense, mais je ne l'ai pas compris de toute façon.


    Mon code fonctionnera pour les images de taille N*M si toutes les images traitées ont la même taille.
    Il ne fonctionnera pas pour des images N*M*3
    Règles du Forum

    Adepte de la maïeutique

  13. #13
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 129
    Points : 47
    Points
    47
    Par défaut
    bonsoir
    En fait Caro, celà m'ennuie que je ne me fasse pas comprendre.
    Je fournirai le max d'effort pour atteindre cette fin :-)
    En fait Caroline ....
    La matrice A des minimum est obtenue en calculant chacun de ses pixels comme suit
    A( i , j)=minimum( G1(i , j ) , G2(i , j) , G3(i , j) ,…,Gn(i , j)) ;
    Autrement dit on compare toutes les n images du paquet en tout pixel (i,j) et attribuant à l’image résultante (image de la brillance minimale) la valeur du pixel de radiométrie minimale. En parcourant tous les pixels, on aura l’image finale qui a la même taille que les images du paquet.
    où i=1:nL
    j=1:nC
    [nL, nC]=size(G)

    dans mon code
    J'ai pris n=table=3
    G trois matrices qqs pour voir les pbs de programmation plus facilement

    Pour le lien, je consulte pas de pb
    Merci @ vous

  14. #14
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 129
    Points : 47
    Points
    47
    Par défaut NOTE
    En fait, Caroline....
    Je trouve ton code parfaitement clair et court.
    Il évite bcp d'acrobaties similaires à ce que j'ai pu faire.
    Juste pour vous redire Merci

Discussions similaires

  1. afficher une image stockée dans un répertoire
    Par pigeon11 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 04/06/2009, 17h24
  2. Enregistrement dans un répertoire spécifique
    Par marinef dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/05/2009, 10h54
  3. Upload dans un répertoire spécifique
    Par charliejo dans le forum Flash
    Réponses: 6
    Dernier message: 14/09/2007, 12h02
  4. Lien DLL dans un répertoire spécifique
    Par dimdidi dans le forum Langage
    Réponses: 7
    Dernier message: 20/02/2006, 08h06

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