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
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
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
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!!!)
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
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
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!
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
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,
Partager