Bonjour,
pour ma méthode que j'essaye d'utiliser je dois combiner la connectivité floue avec l"algorithme de coupe de graphe ,l'idée se base sur l'utilisation des régions segmentées à partir de la connectivité floue comme des pixels germe pour la source et le puit pour la coupe de graphe
voici le code pour récupérer les coordonnées
pour la coupe de graphe j'ai opté l'algorithme basé sur le flot max présent dans lien suivant http://www.mathworks.com/matlabcentr...v1.0/CMF_Cut.m
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 FC=afc(S,K);%Absolute FC u=FC>thresh; v=FC<thresh; s=regionprops(u, 'PixelIdxList');%listes de pixels de l'objet t=regionprops(v, 'PixelIdxList');%listes de pixels de l'arrière plan [a,b]=size(s); [w,c,z]= size(t) for i=1:a for j=1:b [y,x] = ind2sub(size(u), s(i,j).PixelIdxList); end end for k=1:w for d=1:c [y1,x1] = ind2sub(size(v), t(k,d).PixelIdxList); end end
j'ai essayé de changer les variables Cs et Ct comme suit
le problème c'est qu'on effectuant l'autre partie présente dans le code ,l'index va déborder la taille max de la matrice
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Cs=-log([x y]) Ct=-log([x1 y1])
puisque [x y] et [x1 y1] n'ont pas la même taille
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 u = double((Cs-Ct) >= 0); ps = min(Cs, Ct); pt = ps;
Si vous avez une idée à me proposé je vous serai gré
Partager