Witam
Dzięki Chmolu teraz wszystko działa :)
A teraz kawałek kodu a dokładniej cała procedurka, jest to "serce" mojego programu.
Procedure TFiltr.filtracja;
var
k1 : TColor;
suma_g, G, suma_elementow : currency;
x, y, i, j : integer;
begin
Licznik2 := 0;
suma_elementow := 0;
x := Image5.Width ;
y := Image5.Picture.Height;
Progress.Max := x;
i:=0; j := 0;
for j := 0 to tabmax do
for i := 0 to tabmax do
begin
suma_elementow := suma_elementow + ftab [i,j];
end;
for x := tabmax to Image5.Width + tabmin do // macierz obrazu szerokosc
for y := tabmax to Image5.Picture.Height + tabmin do // macierz obrazu wysokosc
Begin
Application.ProcessMessages;
suma_g := 0; // czyszczenie zmiennych
// odczyt jednej tablicy filtru
for j := tabmin to tabmax do
begin;
for i := tabmin to tabmax do
begin
k1 := Image5.Picture.Bitmap.Canvas.Pixels[x+j,y+i]; // macierz obrazu
suma_g := suma_g + (GetGValue(k1)* ftab[i+tabmax,j+tabmax]);
// koniec odczytu
end;
end;
G := suma_g / suma_elementow;
Image6.Picture.Bitmap.Canvas.Pixels[x, y] := RGB(Round(G), Round(G), Round(G));
Progress.Position := x;
end;
Porownanie;
end;
Jeśli ktoś będzie miał jakiś pomysł na zatrzymanie tej petelki to będę wdzięczny.
Pozdrawaim