Entwickler-Ecke

Dateizugriff - Jpeg vergleichen


Markus_Nr59 - Do 01.12.05 17:30
Titel: Jpeg vergleichen
Hallo zusammen.

Ich würde gerne zwei jpeg mit einander vergleichen. Wie mache ich das am besten?
Also ich habe ein kleines Tool angefangen. Damit kann man ein jpeg auswählen und einen Such-Pfad angeben. Das Programm soll jetzt den Pfad durch suchen und alle jpeg finden bzw auflisten.
Das klappt auch, nur wenn ich jetzt die gefundenen pics mit dem ausgewählten jpeg vergleichen möchte geht mit die Luft aus. Ich habe keine Ahnung wie. Alle properties die ich finden kann sind bei zu vielen Bildern gleich.

Währe schön wenn einer ne coole Idee hätte.

Mfg + Danke
Markus


arcardia - Mi 07.12.05 10:24

Nunja da gibt es mehrere Möglichkeiten

Willst du Bilder finden die wirklich 100% gleich sind dann kannste den Dateiinhalt per MD5 Checksumme vergleichen

Zeigen die Bilder aber z.b das gleiche Motiv haben aber andere Grössen oder wurden sonstwie bearbeitet dann geht nur ein Pixelvergleich wie...

Ein grober (und etwas umständlicher) Weg ist es das Bild verkleinert in ein TBitmap zu laden (sagen wir 160x90 oder sowas und dann gleich in Schwarz/Weiss)

Jetzt grasst du mit Scanline das Bild ab und merkst dir den RGB Wert jedes Pixels zusammenaddiert in einem Array o.ä

(Weiss = R:255+G:255+B:255 ergibt z.b 765)

In einem 2. Bild machste das gleiche nur mit den Vergleichsbildern aus dem Ordner

Jetzt kannste den Inhalt des Arrays vergleichen und wenn Sich z.b die Werte zu 90% decken kannste davon ausgehen das es vom Motiv her das gleiche Bild ist


Wie gesagt ist ein Ansatz gibt mit Sicherheit noch anderen Weg

Have fun

Moderiert von user profile iconChristian S.: Überflüssige Zeilenumbrüche entfernt


Gausi - Mi 07.12.05 10:29

Ich werf mal den Begriff Histogramm in die Runde. Das dürfte auch was helfen.


Markus_Nr59 - Mo 12.12.05 15:14

Hi zusammen,

Danke erst einmal. Ich werde eure Infos in kürze mal Testen.

Grüße
Markus


Markus_Nr59 - Do 15.12.05 14:06

Hi Zusammen,

da ich in Delphie noch nicht viel Erfahrung habe und zum Thema Bilder noch gar nix weiß, kommt hier direkt die nächste Frage, oder Bitte.

Hättet ihr eventuel auch ein paar Zeilen Code die mir verraten wie ich z.B. mit scanline arbeiten kann.

Histogram ist O.K. aber auch hier stellt sich mir die Frage wie ich da an die Infos komme. Ich meine wie pack ich das an?

Gruß
Markus


Lossy eX - Do 15.12.05 14:48

In einem Post von mir [http://www.delphi-forum.de/viewtopic.php?p=223267#223267] befindet sich ein Quellcode. Dieser ist zwar nicht genau das was du suchst aber damit wird mittels ScanLines ein Bild komplett eingefärbt. In dem Code wird an anderen Stellen ein Bitmap erstellt und später wieder freigegeben. Das musst du dir mal zusammendenken. :-)