Seite 1 von 3

Bild vergleichen!

Verfasst: 24.01.2009 23:49
von R4z0r1989
Hey Leute ich hab mal wieder ein kleines prob.

ich versuch im mom auf dem desktop nach einen teil zu suchen den ich als bmp gespeichert hab. nachdem jetzt ein pixel für pixel suchen recht langsam ist frag ich mal obs eine methode gibt die anständig schnell ist!

Ich hoffe mir kann jemand von euch helfen^^

Danke im voraus!

MFG R4z0r

Verfasst: 25.01.2009 02:30
von KeyKon
Durch Resizen die Pixelanzahl verringern, sobald man weis wo der unterschied is kann man dann immer mehr reinzooemen und sich auf den bereich konzentrieren...

Verfasst: 25.01.2009 02:34
von R4z0r1989
KeyKon hat geschrieben:sobald man weis wo der unterschied
ich will ja nicht den unterschied erkennen sondern mehr nen mausklick auf die exakte stelle machen lassen wo der desktop so is wie auf dem bild das ich vorgeben!

und ist resizen immer gleich oder kann es dabei unterschiede geben?

Verfasst: 25.01.2009 02:42
von KeyKon
Ich weis nich so recht was du meinst...
Ich würde das Bild beim ersten durchgang richtig stark Resizen (auf 5% der Ursprungsgröße oder so), schließlich müsste sich da auch schon ein Unterschied ergeben...

Und noch was, wie überprüfst du denn die Pixel evtl ein Kurzer Codeausschnitt?

Verfasst: 25.01.2009 02:47
von R4z0r1989
also ich will das ja universell machen können und momentan pass ich es soweit an dass ich nur bestimmte anomalienen manuel prüfen lass, also mit Point(x,y) speziele sachen raussuch! ^^

Verfasst: 25.01.2009 02:49
von KeyKon
Ich glaub, wir reden ein bisschen aneinander vorbei...
Es is auf jeden Fall so das du (soweit ich weis) schneller bist wenn du die Werte direkt aus dem Speicher ausließt anstatt Point zu verwenden

Verfasst: 25.01.2009 02:53
von R4z0r1989
wie kann ich direkt an aus dem speicher auf ein bild zugreifen?


also ums nochmal zu erklären

ich hab ein bild was z.B. xxx ist,
und meinen desktop der zb:

ooooooooooooooooooooooo
ooooooooooooooooooooooo
ooooooooooooooooooooooo
ooooooxxxoooooooooooooo
ooooooooooooooooooooooo
ooooooooooooooooooooooo
ooooooooooooooooooooooo

aussieht und will dass mein programm einen mausklick auf den xxx macht

Verfasst: 25.01.2009 02:55
von KeyKon
Achso, ich dachte es geht dir um das suchen nach dem Unterschied zwischen zwei Bildern...
Mom ich such dir ma kurz ein Bsp...

Verfasst: 25.01.2009 02:57
von R4z0r1989
ne ich such auf einem bild ein kleineres bild und will nen mausklick darauf ausüben!

Verfasst: 25.01.2009 03:00
von Kaeru Gaman
also wie KeyKon schon sagte, zugriff über Point() ist SEHR langsam.
such dir mal irgendwelche API sachen dazu raus,
am besten nen screenshot und dann die Bitmap durchsuchen.

die methode die KeyKon geschildert hat, ist eher geeignet um Unterschiede zu finden.

ich würde das in sofern optimieren, dass ich den screenshot zuerst
nur nach einem einzigen pixel in der richtigen farbe durchsuche,
und erst wenn ich das gefunden hab von dort aus weiter gucken,
ob mit den restlichen pixel des suchmusters übereinstimmung besteht.

geht es dir darum, z.B. auf ein bestimmtes Icon zu clicken?

... dir ist aber schon klar, dass Desktops unterschiedlich eingestellt sein können, also die Icons vergrößert oder sonstwas..