CPU, Mobo, Ram Boitiers, Alimentations Cartes graphiques Stockage
Overclocking Cooling Silence Electronique
Ti 83 (+,SE) Ti 89, 92 & Voyage200 Accessoires, Connectique
ordinateur portable Fournitures de bureau Ordinateur PC portable Base de registre yAronet Dew's blog


Procedure Ouvrir(); begin with bmpform do begin if OPD.Execute then begin source.Picture.LoadFromFile(OPD.FileName); cible.Picture.Bitmap:=source.Picture.Bitmap ; origine.Text:=OPD.FileName; end; end; end;
Type matrice = array[0..4,0..4] of integer;
function ConvertMtoT(M:matrice):tableau;
function ConvertTtoM(T:tableau):matrice;
Type
TRGB = Record
R : integer;
G : integer;
B : integer;
End;
RGB : TRGB; Indice : integer; Indice matriciel mX, mY, dX, dY : integer; Positions de la matrice D : integer; Bord de la matrice : -D à +D PosX, PosY : integer; Position PosX et PosY dans l'image
FOR PosY := Rect.Top TO Rect.Bottom - 1 DO FOR PosX := Rect.Left TO Rect.Right - 1 DO FOR dY := -D TO D DO FOR dX := -D TO D DO mY := PosY + dY; mX := PosX + dX; SI(mY>=1) ET (mY<=BMP.Height-1) ET (mX>=1) ET (mX<=BMP.Width-1) Si le pixel à coefficienter est dans les limites de l'image, => EFFET DE BORD Alors : RGB.R := BMP.Scanline[mY,mX].RGBTRed; Sinon : RGB.R := BMP.Scanline[PosY,PosX].RGBTRed;
Indice := 12 + dY * 5 + dX;
New_RGB.R := New_RGB.R + RGB.R * Filter[Indice]; New_RGB.R := New_RGB.R DIV Diviseur;
IF New_RGB.R > 255 THEN New_RGB.R := 255 ELSE IF New_RGB.R < 0 THEN New_RGB.R := 0;
FinalBMP.Scanline[PosY,PosX].RGBTRed := New_RGB.R;

Le filtre Laplacien permet de détecter parfaitement les contours car il évalue les variations d'intensité sur toute la surface à traiter.