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
|
procedure TForm1.Mediane1Click(Sender: TObject);
var i,j,k:integer;
h:array [0..8] of double;
b:Tbitmap;
inter : double;
begin
b:=Tbitmap.create;
b:=image1.Picture.Bitmap ;
for j:=0 to image1.width do
for i:=0 to image1.Height do
begin
h[0]:= getrvalue(image1.Canvas.Pixels[j-1,i-1] ) ;
h[1] :=getrvalue(image1.Canvas.Pixels[j,i-1] ) ;
h[2]:= getrvalue(image1.Canvas.Pixels[j+1,i-1]) ;
h[3]:= getrvalue(image1.Canvas.Pixels[j-1,i] ) ;
h[4]:=getrvalue( image1.Canvas.Pixels[j,i]) ;
h [5]:= getrvalue(image1.Canvas.Pixels[j+1,i]) ;
h [6]:= getrvalue(image1.Canvas.Pixels[j-1,i+1]) ;
h [7]:= getrvalue(image1.Canvas.Pixels[j,i+1] );
h [8]:=getrvalue(image1.Canvas.Pixels[j+1,i+1] ) ;
k:=0;
while k < 9 do
if h[k]>h [k+1] then
begin
inter :=h[k];
h[k]:=h[k+1];
h[k+1]:=inter;
k:=0;
end
else k:=k+1 ;
b.Canvas.Pixels[j,i]:=rgb(floor(h[4] ),floor(h[4] ),floor(h[4] ));
end;
image1.Picture.Bitmap := b;
b.freeimage ;
end; |
Partager