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
| PROCEDURE Aff_I1I2;
CONST C1 = 4; L1 = 40; o = 10;
BEGIN
E(0015); Wt(C1, L1 - 1, 'Intensit totale du cyan: Ic = ');
E(0010); Write(Icyan:o);
E(0015); Wt(C1, L1 + 1, 'Intensit totale du violet: Iv = ');
E(0010); Write(Iviolet:o)
END;
PROCEDURE CalculI1I2(La, Ha: Z_32; VAR J1, J2: Z_32; VAR Ma2: Tab_Pix);
VAR s, S1, S2, Xm, Ym: Z_32; Px: Pixel;
BEGIN
S1:= 0; S2:= 0;
FOR Xm:= 0 TO (La - 1) DO
FOR Ym:= 0 TO (Ha - 1) DO
BEGIN
Px:= Ma2[Xm, Ym]; s:= Px[1];
Inc(s, Px[2]); Inc(s, Px[3]);
IF (s>0) THEN IF (Px[1]=0) THEN Inc(S1)
ELSE IF (Px[2]=0) THEN Inc(S2)
END;
J1:= S1; J2:= S2
END;
(*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
Calcul de la seconde matrice
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*)
PROCEDURE ZeroM(VAR Ma: Tab_Pix);
CONST Pzero: Pixel = (0, 0, 255);
VAR i, j: Z_32;
BEGIN
FOR i:= 0 TO Dim_Max DO
FOR j:= 0 TO Dim_Max DO Ma[i, j]:= Pzero
END;
PROCEDURE Calc_Mat_Im2(La, Ha: Z_32; VAR Ma1, Ma2: Tab_Pix);
VAR k, m: Byte; Xm, Ym: Z_32; Px1, Px2: Pixel;
BEGIN
ZeroM(Matrice_2);
FOR Xm:= 0 TO (La - 1) DO
FOR Ym:= 0 TO (Ha - 1) DO
BEGIN
Px1:= Ma1[Xm, Ym]; m:= Px1[1];
FOR k:= 2 TO 3 DO IF (m>Px1[k]) THEN m:= Px1[k];
FOR k:= 1 TO 3 DO Px2[k]:= Px1[k] - m;
Ma2[Xm, Ym]:= Px2
END
END; |
Partager