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
| // Calcul de la matrice (2x2) locale ramene
un triplet
FUNCTION F_MatP(x, y: Z_32): Tab_3R;
VAR DxI, DyI, X1, X2, Y1, Y2, Z1, Z2: Z_32; TestX, TestY: Bool; Ta: Tab_3R;
BEGIN
Calc_XiYi(Larg_Image, Haut_Image, x, y, X1, X2, Y1, Y2);
TestX:= (X2=(X1 + 2)); TestY:= (Y2=(Y1 + 2));
Z1:= Int_Px(Matrice_1[X1, y]);
Inc(Z1, Int_Px(Matrice_1[X1, Y1]));
Inc(Z1, Int_Px(Matrice_1[X1, Y2]));
Z2:= Int_Px(Matrice_1[X2, y]);
Inc(Z2, Int_Px(Matrice_1[X2, Y1]));
Inc(Z2, Int_Px(Matrice_1[X2, Y2]));
IF TestX THEN DxI:= Z2 - Z1 ELSE DxI:= 2 * (Z2 - Z1);
Z1:= Int_Px(Matrice_1[x, Y1]);
Inc(Z1, Int_Px(Matrice_1[X1, Y1]));
Inc(Z1, Int_Px(Matrice_1[X2, Y1]));
Z2:= Int_Px(Matrice_1[x, Y2]);
Inc(Z2, Int_Px(Matrice_1[X1, Y2]));
Inc(Z2, Int_Px(Matrice_1[X2, Y2]));
IF TestY THEN DyI:= Z2 - Z1 ELSE DyI:= 2 * (Z2 - Z1);
Ta[0]:= Sqr(DxI); Ta[2]:= Sqr(DyI);
Ta[1]:= DxI * DyI; Result:= Ta
END; |
Partager