Bonjour
Je suis une nouvelle utilisatrice de matlab (quelques semaines..). Et grace aux infos que j'ai trouvé sur les forums j'ai reussi à programmer quelque chose (merci) mais c'est assez lent…
J’ai des disques dont je connais les positions des centres et les rayons. Et je voudrais avoir une idée de l’air projetée.
J’utilise la function bwarea de matlab. Le code marche mais j’ai un pb de vitesse et de memoire (segmentation fault) si je fais trop de relances.
Voila mon script :
et j’appelle circle qui est :
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 discount %nb de disques %X matrice avec les position des centres pour chaque disque discX = X(1,:); discY = X(2,:); discRadius=r; figure('Position',Pos1,'Visible', 'off') hold on for i=1:discCount c=discX(i); b=discY(i); circle(c,b,discRadius); end axis equal axis off hold off print -f -djpeg 'projection' b = imread('projection.jpg'); delete('projection.jpg') b = im2bw(b); %b=b;%(200:700,352:952); %crop the image intensity=bwarea(b);
J’utilise la function bwarea de matlab. Mais du coup, il me faut une image binaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function [x y]=circle(a,b,r) theta = linspace(0,2*pi,100000); x = a+r*cos(theta); y = b+r*sin(theta); %plot(x,y); % plot circle fill(x,y,'k') axis('equal');% set equal scale on axes per pixel end
Est ce que c’est possible de sauvegarder (dans une matrix) les point du cercles qui sont remplie par le fill et de juste les compter (sans consruire une vraie image)?
Ou est ce qu’il y a une fonction comme fill qui donne une matrice au lieu d’une image?
Je ne sais pas si j’ai été assez claire, dites moi s’il vous faut plus d’infos.
Merci beaucoup!
Partager