Ver Mensaje Individual
  #5  
Antiguo 27-08-2008
Cesar Junior Cesar Junior is offline
Miembro
 
Registrado: ago 2007
Posts: 24
Reputación: 0
Cesar Junior Va por buen camino
procedure limiar(ABmp: TBitmap);
var
c: TCursor;
x, y: Integer;
R, G, B: Byte;
ColorRGB: LongInt;
HCLR: Byte;
begin
Li := Limiarizar; // variable global q recibe el valor de Limiar
c := Screen.Cursor;
Screen.Cursor := crHourGlass;
for y := 0 to (ABmp.Height - 1) do
for x := 0 to (ABmp.Width - 1) do begin
ColorRGB := ColorToRGB(ABmp.Canvas.Pixels[x, y]);
// obtém as cores da paleta
R := GetRValue(ColorRGB);
G := GetGValue(ColorRGB);
B := GetBValue(ColorRGB);
// compara valor
HCLR := 0;
if R > Li then HCLR := 255;
if G > Li then HCLR := 255;
if B > Li then HCLR := 255;
// converte para tons de cinza
R := HCLR;
G := HCLR;
B := HCLR;


// aplica a nova cor ao pixel
ABmp.Canvas.Pixels[x, y] := PaletteRGB(R, G, B);
end;
Screen.Cursor := c;
end;


Consiste que con esto conseguimos binarizar la imagen de acuerdo con la necessidad de cada, o sea que como una imagen en escala de grizes varia de 0 a 255 ejemplo de lmiar 127 todo aquells pixels q estean abajo de 127 van a 0 (negro) y todos los que estean arriba de 127 van a 255(blanco), esto da resultados mas preciso dependiendo de la imagen, al resultado de esto estoy intentando implementar algo
Responder Con Cita