salut tous le monde j'ai réalisé un code pour colorer les différentes parties d'une image
sachant qu'on a deux tableau, le premier contenant les régions avec chaque pixel d'une région a comme indice le num de la région exemple le pixel lr(10)=(10,20,3) donc le point de coordonnée 10 20 appartient à la 3éme région
sachant que dans la liste lf on a les frontières.
ce que j'ai voulu faire c'est de colorer chaque région avec une couleur différente et de colorer les frontières en noir.
J'applique l'algo en dessous mais je n'obtient pas une image en couleur mais en niveau de gris et je ne comprend pas pourquoi.
Si vous avez une réponse je suis preneur.
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
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 function [mat,Tab,nb]= colorer(seg,lf,lr,Numpass,R) m=size(lr); m1=size(lf); [l,c]=size(Numpass); mat=zeros(l,c,3); [Tab,nb]=nbregion(seg); for i1=1:nb if Tab{i1} ~= 0 seuil=Tab{i1}; %name=['mat' k]; for i=1:m if lr(i,3)==seuil %disp(seuil); x=lr(i,1); y=lr(i,2); %add %if R(x,y) > 0.65 if seuil<25 col1=seuil*10 + 1; col2=seuil*10 + 2; col3=seuil*10 + 3; else col1= seuil + 10; col2=seuil +20; col3=seuil + 30; end %add %else %disp(col); mat(x,y,1)=col1; mat(x,y,2)=col2; mat(x,y,3)=col3; end end end end for i1=1:m1 x1=lr(i,1); y1=lr(i,2); mat(x1,y1,1)=150; mat(x1,y1,2)=150; mat(x1,y1,3)=150; end mat=uint8(mat);
Partager