Bilder Vergleichen

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
PaulchenPanter24
Beiträge: 8
Registriert: 09.03.2005 14:42

Beitrag von PaulchenPanter24 »

Leo hat geschrieben:Geht auch einfacher:

Code: Alles auswählen

if MD5FileFingerprint("bitmap1.bmp") = MD5FileFingerprint("bitmap2.bmp") 
    debug "gleich"
else
    debug "ungleich"
endif
ich werde diesen weg nutzen!


vielen dank für die schnelle hielfe!
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Mnmmm... hast du meinen Beitrag nicht gelesen, willst du mich ärgern oder nimmst du absichtlich den langsameren Weg? :?
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
PaulchenPanter24
Beiträge: 8
Registriert: 09.03.2005 14:42

Beitrag von PaulchenPanter24 »

lieber langsammen als den den ich nicht verstehe
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Paulchen Pather hat geschrieben: ums besserzusagen ich hab ca 100 bmp dateien und will das er genau ein paar findet!

der vorschlag 2 dürfte da doch besser sein oder?
Ja, da musst du MD5Fingerprint() verwenden, sonst brauchst du ja Stunden.
Mach am besten ne LinkedList in die du alle Dateien einträgst, dann kannst du gut vergleichen.

Code: Alles auswählen

structure file
 pfad.s
 md5.s
endstructure

NewList Datei.file()
Da lädtst du alle MD5s mit Dateipfad rein, und schon kannst du super vergleichen.

@Deem: Da ist dein Weg leider ungeeignet, oder ist der sooo schnell?
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
dige
Beiträge: 1239
Registriert: 08.09.2004 08:53

Beitrag von dige »

Am schnellsten geht das mit ner CrC32 Checksumme und noch schneller
wenn man zum Bsp. nur die ersten 50KB vergleicht.

Funktioniert hier mit ca. 47.000 Bildern recht zuverlässig...

Eine weitere Methode um zum Bsp. änliche Bilder zu finden wäre
Hotspots in Bildern zu definieren oder Vektoren in Bilder zu legen
und zu vergleichen...
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Was spricht denn gegen die Procedure, auf die Deem hingewiesen hat?

Da ist doch kaum ein Unterschied im Verstehen, musst sie ja nur aufrufen können.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

bluejoke hat geschrieben:Was spricht denn gegen die Procedure, auf die Deem hingewiesen hat?

Da ist doch kaum ein Unterschied im Verstehen, musst sie ja nur aufrufen können.
Ein binärer Vergleich zwischen zwei Dateien ist selbstverständlich schneller als der Vergleich der beiden Hash-Werte (MD5, CRC32 usw.). Wenn du allerdings bei einer größeren Anzahl an Dateien jede Datei mit jeder anderen Datei vergleichen willst kommst du damit schnell an die Grenzen des Machbaren. Schneller geht es, wenn du von jeder Datei zuerst den Hash-Wert ermittelst und in einer Liste ablegst. Nun brauchst du nur noch jeden dieser Werte gegen jeden anderen vergleichen, bei Übereinstimmung zweier Hashs kannst du diese beiden Dateien dann immer noch binär prüfen (für die ganz paranoiden unter uns ;) ).
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Dagegen spricht, dass er nicht 2 Dateien Vergleichen will, sondern 100. Es wären dann nicht 100 Vergleiche auszurechnen, sondern.
99+98+97+96+95+94+...+3+2+1 = 4950 Vergleiche /:->

Edit: Mist, da wr jemand schneller. Ist aber sehr wohl machbar. :lol:
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Antworten