Bild vergleichen!

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Bild vergleichen!

Beitrag 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
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag 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...
(\/) (°,,,°) (\/)
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag 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?
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag 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?
(\/) (°,,,°) (\/)
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag 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! ^^
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag 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
(\/) (°,,,°) (\/)
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag 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
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag 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...
(\/) (°,,,°) (\/)
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

ne ich such auf einem bild ein kleineres bild und will nen mausklick darauf ausüben!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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..
Antworten