ok , disculpa, aki va de nuevo
Código Delphi
[-]
procedure TFMain.Contrastelog1Click(Sender: TObject);
var i,j,mayor, menor:integer;
begin mayor:=0; menor:=255;
for j := 0 to alto-1 do begin
PLine := Bitmap.ScanLine[j];
i:=0; while i<=( (ancho*3)-1) do
begin if ((PLine[i]+PLine[i+1]+PLine[i+2]) div 3) > mayor
then begin
mayor:= ((PLine[i]+PLine[i+1]+PLine[i+2]) div 3) ;
end;
if (PLine[i]+PLine[i+1]+PLine[i+2]div 3) < menor
then begin
menor:= ((PLine[i]+PLine[i+1]+PLine[i+2]) div 3) ;
end;
if ( mayor+ menor )> 0
then begin pixel :=(mayor-menor)div( mayor+ menor ) ;
end;
i:=i+3;
end;
end;
for j := 0 to alto-1 do begin
PLine := Bitmap.ScanLine[j];
i:=0;
while i<= (ancho*3)-1 do begin
if PLine[i] <= 0 then
PLine[i]:=1; PLine[i]:= 2*round(ln(pixel)+ln(PLine[i]))+5;
if PLine[i] <= 0 then
begin PLine[i]:=0; end;
if PLine[i] > 255 then
begin PLine[i]:=255;end
else begin PLine[i]:= 2*round(ln(pixel)+ln(PLine[i]))+5; end;
if PLine[i+1] <= 0 then
PLine[i+1]:=1;
PLine[i+1]:= 2*round(ln(pixel)+ln(PLine[i+1]))+5;
if PLine[i+1] <= 0 then
PLine[i+1]:=0;
if PLine[i+1] > 255 then
begin PLine[i+1]:=255;end
else begin PLine[i+1]:= 2*round(ln(pixel)+ln(PLine[i+1]))+5;
end;
if PLine[i+2] <= 0 then
PLine[i+2]:=1; PLine[i+2]:= 2*round(ln(pixel)+ln(PLine[i+2]))+5;
if PLine[i+2] <= 0 then
PLine[i+2]:=0;
if PLine[i+2] > 255 then
begin PLine[i+2]:=255;end
else begin PLine[i+2]:= 2*round(ln(pixel)+ln(PLine[i+2]))+5; end;
i:=i+3;
end;
end;
Image1.Picture.Assign(Bitmap);
end;