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 :

boucles avec conditions pour faire un suivi


Sujet :

MATLAB

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 109
    Points : 63
    Points
    63
    Par défaut boucles avec conditions pour faire un suivi
    Bonjour

    Alors voilà j'ai, après quelques lignes de code, un tableau de cellules de structures cellule{k}(i)
    - k : n° image
    - i : n° d'objet est celui donné par la fonction bwlabel après un traitement d'images
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    cellule{k}(i)
    ans =         x: 616.0136
                  y: 33.6703
               aire: 367
               diam: 21.6166
               orientation: 27.3231
               temps: 0.3430
               bord: 'assez loin' (ou 'trop près')
               type: 'isolé' (ou 'aggregat')
               interaction: 'non' (ou 'oui') % ce sont les paramètres pour les tests 
               image: 10
               objet_Matlab: 21
    Je récupère ensuite num_Matlab{n°image} qui est un tableau de vecteurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     num_Matlab{10} % image 10 : objets répondant à mes tests (ie bord='assez loin' & type='isolé' & interaction='non') 
    ans =
      Columns 1 through 17 
         1     2     4     5     6     7     8     9    10    11    13    14    15    16    19    20     21

    Je souhaiterais au final suivre mes objets via ses coordonnées Pour cela, je fais un test sur le déplacement qui doit être inférieur à 10.

    Pour l'instant, j'essaye de mettre cela en œuvre tout en posant clairement mes idées ce qui n'est pas du plus évident (cela explique le post!!!)

    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
    ap=[];
    for k=2:N % je garde num_Matlab{1} tel que 
        for i=1:NbObjets{k} % je travaille ici sur
            for j=1:le{k} % les objets i détectés de l'image en cours k qui 
                if i==num_Matlab{k}(j) % répondent aux tests (bord, type et interaction)
                    for p=1:NbObjets{k-1} % je travaille ici sur les objets p
                        for q=1:le{k-1} % détectés de l'image précédente k-1 qui
                            if p==num_Matlab{k-1}(q) % répondent aux tests
                                if sqrt((cellule{k-1}(p).x-cellule{k}(i).x)^2+(cellule{k-1}(p).y-cellule{k}(i).y)^2)<10
    % test sur le déplacement de ma cellule par rapport à l'image précédente
                                    ap=[ap i];
                                end
                            end
                        end
                    end
                    l=length(ap);
                end
            end
        end
        for o=1:l
            if i~=ap(o)
                i
            end
        end
    end
    Rien de tel qu'un exemple pour vous expliquer ce que je veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ma numérotation     1   2   3   4   5   6   7   8   9   10   
    image 1             1   3   4   6   8   10  15  17  
    image 2             1   3   5       10   9  16  18  5   21
    image 3                 3   4   5   10  11  16  20  6   21
    image 4             1   3   4   7   9   11  16  19
    Bien sûr, je ne travaille pas avec une matrice mais c'est pour la présentation, je vais avoir par ex tableau{k1}(i1) avec k1=1 ma numérotation et après le n° de mes images et pour i1 ma numérotation!

    Je veux donc "coller" la numérotation (de bwlabel) de la 1ère image sur ma numérotation.
    Pour la 2nde image, il peut donc y avoir des objets dont la numérotation s'échange (ex entre colonnes 5 et 6 de ma numérotation puisque c'est la référence en fait), des objets qui disparaissent (cf colonne 4), des objets qui apparaissent et que je souhaite placer à la fin de ma numérotation (col 9 et 10).

    Merci d'avance à ceux qui pourront me guider dans cette boucle et me conseiller tout court!

    Cordialement,

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 109
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    J'aimerais savoir si mes lignes de code en rouge et en bleu sont correctes ou absurdes!

    Sinon, comment faire pour créer ce tableau de cellules de vecteurs tout en conservant ma numérotation?


    Merci d'avance de votre aide dont j'ai bien besoin!! je n'avance pas beaucoup depuis quelque temps ...

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

Discussions similaires

  1. Boucle avec condition
    Par sl1980 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/08/2007, 20h24
  2. Boucle avec condition "perdu"
    Par guismoman33 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/06/2007, 10h38
  3. Compilation Java avec GCJ pour faire un exe. Pourquoi ?
    Par Claude URBAN dans le forum Général Java
    Réponses: 11
    Dernier message: 17/06/2006, 21h00
  4. Réponses: 8
    Dernier message: 07/02/2006, 18h31
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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