Bonjour à tous,
Suite à un précédent sujet, je reviens demander de l'aide relativement à un problème de représentation. J'ai une image binaire, fond noir et cellules blanches et j'ai calculé les centres de gravités des cellules blanches ainsi que les axes majeurs et mineurs de ces cellules. Puis j'essaye de représenter tout ceci. Le problème se situe lors de l'affichage des axes, comme ceci :
où CoG est un vecteur 70x2 (70 cellules) contenant les coordonnées des centres de gravité, lambda et teta sont les paramètres définissant les axes. J’obtiens ceci :
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 for i=1:size(CoG,1) x1 = lambda(i,1)*[-1 1]/2*cos(theta(i)); y1 = lambda(i,1)*[1 -1]/2*sin(theta(i)); Major = line(x1+CoG(i,1) , y1+CoG(i,2)); x2= lambda(i,2)*[1 -1]/2*cos(theta(i)+pi/2); y2= lambda(i,2)*[-1 1]/2*sin(theta(i)+pi/2); Minor = line(x2+CoG(i,1) , y2+CoG(i,2)); hold on, plot(x1,y1,'k--'), plot(x2,y2,'k--') end title('cellules, centres, axes')
La représentation est à peu près comme je l'attend sauf que je voudrais que les axes bleus ne "sortent" pas des cellules blanches.
EDIT
En modifiant les vecteurs [-1 1] et [1 -1] apparaissant ci-dessus, en prenant par exemple [-0.3 0.3] et [0.3 -0.3] les axes bleus sont plus courts mais certains dépassent des cellules. J'aurais aimé quelque chose d'automatique qui me donne ces axes seulement dans les cellules (blanches).
Partager