Ca fonctionne !!!
Voici les boucles de seuillage pour 8 bits niveau de gris et pour 24 bits RVB :
8 Bits NdG24 bits RVB
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 for j := 0 to(Bitmap.Height-1)do begin p:=Bitmap.ScanLine[j]; // Récupère le niveau de couleur du pixel (j) for i := 0 to(Bitmap.Width-1)do begin if p[i] > seuil then p[i]:=255 else p[i]:=0; end; end;avec
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 for j := 0 to(Bitmap.Height-1)do begin p:=Bitmap.ScanLine[j]; // Récupère le niveau de couleur du pixel (j) for i := 0 to(Bitmap.Width-1)do begin if Round(0.299 * p[3*i] + 0.587 * p[3*i+1] + 0.114 * p[3*i+2]) > seuil then begin p[3*i]:=255; p[3*i+1]:=255; p[3*i+2]:=255; end else begin p[3*i]:=0; p[3*i+1]:=0; p[3*i+2]:=0; end; end; end;Et "seuil" une variable comprise entre 0 et 255 définissant le niveau de seuillage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var j,i : word; p : pbytearray; BitMap :TBitMap;
Partager