Thema: FreePascal Grafiken erkennen. Library ?

Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#17

AW: Grafiken erkennen. Library ?

  Alt 10. Mai 2012, 19:54
Welche Delphiversion verwendest du?

Ich schätz mal, eine etwas ältere, in der es diesen Typ nicht gibt.

Du kannst sie hier definieren:

Delphi-Quellcode:
type
  PRGBTriple = ^TRGBTriple;
  TRGBTriple = record
    rgbtBlue: Byte;
    rgbtGreen: Byte;
    rgbtRed: Byte;
  end;
  TPRGBTripleRow = Array of PRGBTriple;
Die Funktion liefert dir die Koordinaten der linkeren oberen Ecke im Bild, wo es halt gefunden wurde.

Anwendung:

Delphi-Quellcode:
var
  Position: TPoint;
begin
  Position := findPicture(RiesengroßesBild, SuchBild);
  ShowMessage('Gefunden an der Stelle: ' + IntToStr(Position.X) + ' - ' + IntToStr(Position.Y));
end;
Edit: Skalierung wird nicht berücksichtigt! Dies ginge aber auch ganz einfach (jedoch übelst unperformant) indem man das Suchbild zuerst mal richtig runterskaliert, dann schrittweise hochskaliert bis man dieselben Dimensionen wie das "RiesngroßeBild" hat und meine Suchfunktion drüberjagt!

Edit2: Das Ganze ist mehr oder weniger die Implementierung von dem hier (Anwendung: hier)
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (10. Mai 2012 um 19:59 Uhr)
  Mit Zitat antworten Zitat