On peut envisager un algorithme à un seul paramètre, sachant que pour la trentaine de points testés sur le fond du ciel les conditions
(b > 215) et (r < b * 0.554)
sont vérifiées; elles conduisent alors au résultat suivant:
les taches bleues subsistantes disparaissent par l'intervention d'un rapport limite plus élevé, par exemple:
Krb = 0.600 .

La délimitation du fond ne fait plus intervenir que deux booléens au lieu de six:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| FUNCTION Couleur(Px1: Pixel): Pixel;
CONST Coul: Pixel = (0, 255, 0); Krb = 0.600; // Krb = 0.554
VAR T1, T2: Bool; Px2: Pixel;
BEGIN
T1:= (Px1[3]>215);
T2:= (Px1[1]<(Px1[3] * Krb));
IF (T1 AND T2) THEN Px2:= Coul
ELSE Px2:= Px1;
Result:= Px2
END;
PROCEDURE Calc_Mat_Im2(La, Ha: Z_32; VAR Ma1, Ma2: Tab_Pix);
CONST Pzero: Pixel = ( 85, 170, 255);
VAR Xm, Ym: Z_32; Px: Pixel;
BEGIN
FOR Xm:= 0 TO (La - 1) DO
FOR Ym:= 0 TO (Ha - 1) DO
Ma2[Xm,Ym]:= Couleur(Ma1[Xm, Ym])
END; |
Partager