invalid floating point operation przy power()

0

mam taki kodzik:

procedure TMyImage.gamma(g: Double);
Var
	x, y: integer;
    c: TColor;
begin
	for x := 1 to width do
    	for y := 1 to height do
        Begin
        	c := get_pixel(x, y);
            g := 1/g;
            c :=  round(clwhite*power(c/clwhite, g));
            set_pixel(x, y, c);
        End;
end;

jest to niby kodzik do korekcji gamma w obrazie.
problem jest przy wykonywaniu power() - wyskakuje blad "invalid floating point operation"
nie mam pojecia dlaczego tak sie dzieje :/

0

Na której linijce wyskakuje ten błąd?
Może x, y ma być typu double lub real? [browar]
(Na kacu, więc za pomyłkę przepraszam)

0

no problem jest na linijce:

c :=  round(clwhite*power(c/clwhite, g));

x i y to paramtery poszczegolnego piksela.

0

a nie przekraczasz zakresu przypadeczkiem :>
zrób sobie logowanie wartości c/clwhite oraz g a potem spróbuj podnieść do potęgi w kalkulatorze windowsowym te, na których się wysypuje

1 użytkowników online, w tym zalogowanych: 0, gości: 1