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 26 27 28 29 30 31 32 33 34 35 36
| for k=1:N
% chargement en série des images, traitement des images
[L{k},NbObjets{k}] = bwlabel(fill{k},8);
rego{k} = regionprops(L{k},'All');
end
for k=1:N
% Création d'un tableau de cellules de structures: cellule{n°image}(n°objets)
for i=1:NbObjets{k} % pour exemple
cellule{k}(i).x = rego{k}(i).Centroid(1); cellule{k}(i).temps=ti*(k-1);
... ... ... ...
% test donnant : cellule{k}(i).bord = 'assez loin' ou 'trop près';
end
end
% calcul des distances entre tous les objets d'une même image
num_Matlab{k}=[]; display('Recherche cellules à mesurer')
% création d'un tableau de structures avec les champs: cellule,
% indice_image et indice_objet (numérotation de Matlab)
structSauve=struct('cellule',{},'indice_image',{},'indice_objet',{});
for k=1:N
for i=1:NbObjets{k}
if strcmp(cellule{k}(i).type,'isolé') && strcmp(cellule{k}(i).bord,'assez loin') % et pb d'interaction
% test sur tous les objets pour récupérer le numéro de l'objet étiqueté et
% de l'image correspondante des objets sur lesquels je veux travailler
num_Matlab{k}=[num_Matlab{k} i]; le{k}=length(num_Matlab{k}); % nombre d'objet isolés dans l'image k
end
for j=1:le{k}
if i==num_Matlab{k}(j)
structSauve(end+1) = struct('cellule',cellule{k}(i),'indice_image',k,'indice_objet',i);
end
end
end
end
save('save.mat','structSauve'); |
Partager