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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| clc
close('all')
%Lecture du fichier
open('good.fig');
%Recuperation de l'identifiant de l'objet Image
im = findobj('type','image');
%Recuperation des valeurs des pixels de l'image
C = get(im,'cdata');
% Binarisation de l'image
BW = C~=0;
% Parcours de chaque ligne de gauche à droite
limite_droite = [];
for r = 1:size(C,1)
for c = 1:size(C,2)
if C(r,c)~=0
limite_droite = [limite_droite ; r c];
break
end
end
end
% Parcours de chaque ligne de droite à gauche
limite_gauche = [];
for r = 1:size(C,1)
for c = size(C,2):-1:1
if C(r,c)~=0
limite_gauche= [limite_gauche ; r c];
break
end
end
end
% Parcours de chaque colonne du "haut" vers le "bas"
limite_dessus = [];
for c = 1:size(C,2)
for r = 1:size(C,1)
if C(r,c)~=0
limite_dessus= [limite_dessus ; r c];
break
end
end
end
% Parcours de chaque colonne du "bas" vers le "haut"
limite_dessous = [];
for c = 1:size(C,2)
for r = size(C,1):-1:1
if C(r,c)~=0
limite_dessous= [limite_dessous ; r c];
break
end
end
end
hold on
plot(limite_droite(:,2),limite_droite(:,1),'r*', ...
limite_gauche(:,2),limite_gauche(:,1),'m*', ...
limite_dessus(:,2),limite_dessus(:,1),'g*', ...
limite_dessous(:,2),limite_dessous(:,1),'b*') |
Partager