Salut
Avec ce code (créé pour la question), je vous montre un exemple de mon problème où I est une matrice paire de 0 et 1.
On part sur le principe que l'image que l'on obtient représente deux «branches» d'un squelette.
Comme vous pouvez le voir, certains pixels des deux branches semblent être dans la même orientation.
Ce que je veux faire, c'est extraire les deux premiers et derniers pixels de chaque branche, calculer pour chaque bloc de deux-pixels (deux premiers puis deux derniers) de chaque branche l'orientation (angle) et comparer les orientation (angle) entre bloc de deux-pixels et branches.

la combinaison que je cherche est celle dont il y a même orientation (+/- 5 degrés):
- entre [1ere branche/bloc deux derniers pixels] et [2d branche/bloc deux premiers pixel]
Si cette combinaison est réalisée alors je souhaite combler l'espace entre les branches sinon non

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
I=zeros(20,20);
I(1,15)=1; I(2,14)=1; I(3,13)=1; I(1,16)=1;
 
I(4,12)=1; I(7,9)=1; I(8,8)=1; I(9,7)=1; I(9,6)=1; I(9,5)=1; I(10,4)=1; % création de la matrice
 
CC=bwconncomp(I); 
I=labelmatrix(CC); %Labeling of branches
pixelIndexList=CC.PixelIdxList;
IL=double(IL);
 
 
Label=[];
for h=1:max(IL(:))
    [r,c]=find(IL==h);
    s=sortrows([c r]);
    Points=[s(1:2,:); s(end-1:end,:)] 
    Points(:,2)=h;
    Label=[Label;Points]; % deux Premier et dernier points de chaque label
end
imagesc(I) % figure of problem
I(5,11)=1;
I(6,10)=1;
 
figure, imagesc(I) % figure of solution that I search
Quelqu'un aurait il une petite idée sil vous plait?