08. juni 2012 - 16:18
Der er
1 løsning
finde position af lille image i større image
Hej!
Ja som overskriften siger så prøver jeg at lave en funktion der returnerer positionen af et billede i et andet billede.
Det store billed er et screenshot som er i størrelsen 1680x1050
det lille billed vil oftest være ca. 10x10 pixels
Nogen der har gode ideer til hvordan dette gøres effektivt ?
fandt selv svaret :) ->
function FindBitmap(subbmp, bmp: TBitmap): TPoint;
var
x, y, x1, y1: Integer;
pmatch: boolean;
begin
result.x := -1;
result.y := -1;
for x := 0 to bmp.width-subbmp.width-1 do
for y := 0 to bmp.height-subbmp.height-1 do
if bmp.Canvas.Pixels[x, y]=subbmp.Canvas.Pixels[0, 0] then begin
pmatch := true;
for x1 := 0 to subbmp.width-1 do begin
for y1 := 0 to subbmp.height-1 do
if not(bmp.Canvas.Pixels[x+x1, y+y1]=subbmp.Canvas.Pixels[x1, y1]) then begin
pmatch := false;
break;
end;
if not pmatch then break
end;
if pmatch then begin
result.x := x;
result.y := y;
exit;
end;
end;
end;