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
| N=input('quel est le nombre total d''images? ');
tail_disq=10;
seuil=800;
petite_aire=200;
for k=1:N
fname=sprintf('levures + 50mS par m + 3Vpp +44MHz_t00%d(c1).jpg',k);
I{k}=imread(fname);
end
se=strel('disk',tail_disq);
for k=1:N
background{k}=imclose(I{k},se);
I2{k}=imsubtract(background{k},I{k});
level=graythresh(I2{k});
bw{k}=im2bw(I2{k},level);
bw{k}=bwareaopen(bw{k},petite_aire);
bw{k}=imclearborder(bw{k});
fill{k}=imfill(bw{k},'holes');
[etiquette{k},NbObjets{k}]=bwlabel(fill{k},8);
b{k}=bwboundaries(fill{k});
L{k}=bwlabel(fill{k});
end
affiche=[(1:NbObjets{k})' ones(NbObjets{k},1)];
for k=1:N
reg=regionprops(L{k},'All');
num = (1:NbObjets{k})';
test = ones(NbObjets{k},1);
centre{k}=cat(1, reg.Centroid);
X{k}=centre{k}(:,1);
Y{k}=centre{k}(:,2);
affiche=[affiche X{k} Y{k}]
end |
Partager