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 :

comment faire une boucle pour la lecture et la sauvegarde d'un ensemble d'images? [Débutant]


Sujet :

Images

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 5
    Points : 6
    Points
    6
    Par défaut comment faire une boucle pour la lecture et la sauvegarde d'un ensemble d'images?
    Bonjour,

    ce programme permet de calculer l'histogramme de direction pour une image donné et le résultat est sauvegardé dans la matrice hist.mat (taille 1*16). je suis débutante en matlab et je ne sais pas comment faire une boucle pour que ce programme puisse lire un ensemble d'image (exactement 30 images) au lieu d'une seule image et de sauvegarder chaque fois le résultat dans hist. j'aime avoir comme résultat la matrice hist de taille 30*16.

    s'il vous plait , j'ai besoin de votre aide pour changer ce programme, et merci d'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
    function hist=  hist_16directions(image)
    image=imread('010.tif');
    hist=zeros(1,16);
    nb=0;
    edge1=edge(image);
    width=size(image,1);
    height=size(image,2);
    for x=1:width
        for y=1:height
            if(edge1(x,y))
                for i=0:15
                    myX=x+xC4(i);
                    myY=y+yC4(i);
                    if((myX>=1)&&(myX<=width)&&(myY>=1)&&(myY<=height))
                        if(edge1(myX,myY))
                            hist(i+1)=hist(i+1)+1;
                            nb=nb+1;
                        end
                    end
                end
            end
        end
    end
    hist=hist/nb;
    save hist.mat hist;

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,



    ici ou .

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    j'ai déjà fait une recherche sur le forum et en suivant ce lien exactement http://www.developpez.net/forums/d14...e/#post8097203 mais au lieu d'obtenir une matrice de taille 30*16 j'ai obtenu la matrice hist de taille 1*480 càd la sauvegarde des résulats de tous les images a été faite sur une seule ligne or je veux que chaque ligne correspond au résultat d'une images

    s'il vous plait m'aider à changer ce programme et merci d'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
    hist = [];
    train_rep='C:\Users\sana\Documents\MATLAB\edgedirection\training\'
      train_images=dir(train_rep);
     
    %for n = 1:3 % remplacer ... par le nombre de fichiers 
      for j=3:length(train_images)
            fprintf(['Processing training image ' train_images(j).name '...\n']);
            image=imread([train_rep train_images(j).name]);
            hist=[hist hist_16directions(image)];
     
     
       save hist.mat hist;
     
      end

  4. #4
    Invité
    Invité(e)
    Par défaut
    Regarde ce que retourne size( hist_16directions(image) ) et ce chapitre.

    Pense à sortir la ligne save hist.mat hist; de la boucle. Une seule fois à la fin suffit, pas besoin de sauver/écraser hist à chaque itération.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    j'ai utilisé la fonction reshape w ça marcha bien

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

Discussions similaires

  1. [Smarty] comment faire une boucle
    Par wkd dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 19/08/2009, 13h36
  2. Réponses: 2
    Dernier message: 06/04/2007, 13h31
  3. [VBA-E] Comment faire une boucle lorsqu'il y a des cellules vides
    Par Annick.w dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 01/02/2007, 22h39
  4. [AJAX] Comment faire une boucle XMLHttpRequest qui marche ?
    Par lancelot_13 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/01/2007, 12h00
  5. Comment faire une boucle ???
    Par HookerSeven dans le forum Access
    Réponses: 6
    Dernier message: 17/06/2005, 12h58

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