AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Screen nach bestimmter Pixelanordnung (Bild) absuchen

Screen nach bestimmter Pixelanordnung (Bild) absuchen

Ein Thema von rhodan · begonnen am 11. Nov 2006 · letzter Beitrag vom 18. Nov 2006
Antwort Antwort
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#1

Screen nach bestimmter Pixelanordnung (Bild) absuchen

  Alt 11. Nov 2006, 10:38
Moin leute

Ich hab schon mal ein wenig gegoogelt aber leider nix passendes gefunden.
Gibt es eine möglichkeit den screen nach einem bestimmten Bild (oder dessen genaue Pixelanordnung) abzusuchen und die maus darauf zu zentrieren?

So dass ich z.B ein kleines Firmenlogo in mein Programm laden kann und, sollte ich während ich surfe auf eine Seite kommen wo dieses angezeigt wird, meine maus darauf zentriert wird um mich aufmerksam zu machen?

die Maus bewege ich mit SetCursorPos (??,??), soviel hab ich herausgefunden.
aber wie lasse ich mein programm den screen nach dem kleinen bild welches ich vorher geladen habe absuchen, bzw. die maus auf diese coordinaten zentrieren?
Liege ich falsch wenn ich denke das sich mein Programm die genau Pixelfolge merken muss um danach suchen zu können?

die tutorials wie ich den Screen nach einer bestimmten Pixelfarbe absuchen kann hab ich gelesen, nur leider nichts über die suche nach bestimmten Pixelanordnungen, also bildern :-/

Wäre lieb wenn mir jemand nen tipp geben könnte wie ich weiter zu werke gehen kann.

netten gruß aus hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#2

Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen

  Alt 11. Nov 2006, 14:03
Hallo!

Du könntest Dir eine Procedure schreiben, die von dem Fensterinhalt Deines Browsers in Intervallen einen Schnappschuß macht und in diesem nach Deinem Bild suchen.

Nur ist dieses A sehr Rechenintensiv (ja nach Intervall) und B ohnehin schwer durchführbar, weil Du damit rechnen mußt, das
  • Durch die Komprimierung die Farbwerte sich verändern
  • Die Größe des Bildes geändert wurde
  • Mögl. Das Bild gedreht wurde
  • ...
Der direkte Pixelvergleich funktioniert nur, wenn beide Bilder exakt gleich sind, oder Du baust eine Toleranz (viel Glück!) ein.

Sorry für die aufbauenden Worte.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#3

Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen

  Alt 11. Nov 2006, 14:57
hmmm

danke dir für deine antwort. könnte wirklich sehr rechenintensiv werden. würde denn eine einfachere variante funktionieren?
gibt es denn z.B keine möglichkeit, den screen nicht nur nach einer pixelfarbe abzusuchen, sondern nach einer pixelkonstelation?

das das programm z.B nicht nach einem roten Pixel sucht, sondern nach 4 roten untereinander angeordneten?

das könnte ich dann modifizieren, hab nur kaum ideen wie sowas zu realisieren wäre

lg
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#4

Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen

  Alt 11. Nov 2006, 15:20
Das Realisieren ist kein Problem, nur das richtige Ergebnis zu erhalten...
Wenn die Bilder absolut gleich sind, ist es ja mit Pixelvergleich möglich, aber sobald Du eine Toleranz einbauen musst, wird es eine Spielerei...

Hier im Forum suchenGetWindowDC bzw. Hier im Forum suchenGetDC, Hier im Forum suchenBitBlt, Hier im Forum suchenGetForegroundWindow und Hier im Forum suchenGetWindowRect sollte mal ausreichen, um ein Fenster vom Bildschirm zu "capturen".

Natürlich könntest Du auch den ganzen Bildschirm durchsuchen, aber dann dauerts u. U. länger.

Danach kannst Du nach einer Konstellation suchen, indem Du von 0 bis Width und 0 bis Height alle Pixel durchsuchst.
Ist ein Pixel "verdächtig", also in Deinem Fall ein roter, dann prüfst Du den Unterhalb, ist der auch verdächtigt, dann den nächsten, wenn nicht, dann vom letztem Ausgangspunkt aus weiter suchen.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen

  Alt 11. Nov 2006, 15:24
Zitat von Sunlight7:
[...]Danach kannst Du nach einer Konstellation suchen, indem Du von 0 bis Width und 0 bis Height alle Pixel durchsuchst.
Nimm lieber ScanLine, dass ist schneller.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#6

Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen

  Alt 11. Nov 2006, 16:14
Und was erhält man bei ScanLine... alle (Sub)Pixel...

Es stand ja nix da, welche Methode man verwenden soll, also kann nix schneller sein
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#7

Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen

  Alt 12. Nov 2006, 10:18
vielen dank leutz
ich denke das wird mir weiterhelfen. hab leider erst nächste woche die möglichkeit es zu testen, werde aber berichten. werd mir die beschrieben befehle mal genauer ansehen
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen

  Alt 12. Nov 2006, 10:36
Zitat von Sunlight7:
...indem Du von 0 bis Width und 0 bis Height alle Pixel durchsuchst.
Daraus schloss ich, dass du alle Pixel durchgehen willst, ohne ScanLine zu benutzen. Nichts für ungut.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#9

Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen

  Alt 12. Nov 2006, 17:24
@rhodan: Du solltest das Bild per BitBlt auf eine Bitmap kopieren, die 24 Bit hat.
Dann kannst Du die Pixel am einfachsten vergleichen, dazu auch das QuellBitmap (falls Du eines verwendest auch auf 24 Bit setzen)
Aber dazu später mehr, wenn Du es erst mal auf nem Bitmap hast.

@inherited: Ist ja nicht schlimm, man kann ja seine Meinung frei äußern
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#10

Re: Screen nach bestimmter Pixelanordnung (Bild) absuchen

  Alt 18. Nov 2006, 09:19
Danke für die Tipps, hat funktioniert
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf