Bilder vergleichen

Möchtest du das nu lokal auf deinem Rechner ausführen oder auf nem Webserver?

Aber an sich ist es nur ein Verzeichniss durchsuchen und die Namen (Strings) vergleich.

Ein paar Werkzeuge sollten, ereg(), preg(), filesize(), fileatime() .... sein. Zudem die Imagefunktionen zum auslesen von Höhe und Breite oder imagejpg(), copy(), zum erstellen von Thumbnails.

Kompliziert ist das nicht gerade aber eine nette Schreibarbeit:eek: .

Oder war das jetzt am Thema vorbei?
Weil es dafür sicherlich auch fertige Scripte zu laden sind. :google:
 
Ja. War voll vorbei am Thema :)
Wenns nur eine Filenamesuche wär, dann wäre es ja halb so wild.
Auf der Website folgender Absatz ist interessant (und die Fotos darunter):

Ist "Suche ähnliche Bilder" markiert, werden die Bilder mit dem Bild im Hardcopy-Fenster verglichen und unter [ ? ] angezeigt.
Wird nach "Info" sortiert, dann werden die Bilder nach ihrer Ähnlichkeit angezeigt.
In der jeweils obersten Zeile von Info wird eine Zahl eingezeigt, diese Zahl entspricht der errechneten Abweichung.
(Wird 0 angezeigt, dann ist das Bild identisch zu dem gesuchten Bild.)

Das ist mein "Problem".
 
Auszug aus dem PHP-Manual:

Lost at LostLord dot com [Morteza Zafari]
08-Nov-2004 05:03
A simple image compare function.
It scans 2 images pixel by pixel, from left to right and from top to bottom, if all pixels have equal colors it will return 'True', otherwise it will return 'False'.

$img1 and $img2 must be of type image. (see usage)
----------------------------------------------
PHP:
function imagecompare($img1, $img2) {
  if (imagesx($img1)!=imagesx($img2) || imagesy($img1)!=imagesy($img2)){
   return false;
  }
  for( $x=0; $x<imagesx($img1 ); $x++ ){
     for ($y=0; $y<imagesy($img1); $y++) {
         if(imagecolorat($img1,$x,$y)!=imagecolorat($img2,$x,$y)){
                 return false;
         }
     }
  }
  return true;
}

----------------------------------------------
Sample usage:
$im1=imagecreatefromgif("test1.gif");
$im2=imagecreatefromgif("test2.gif");
echo imagecompare(&$im1,&$im2);

Vielleicht hilft dir das weiter...

Gruß
schoko
 
Hmm mal ein kurzer Denkanstoss, wobei ich keine Ahnung habe ob es so funktioneren könnte...

In der obigen Funktion wird ja geprüft ob ALLE pixel übereinstimmen. Wie wäre es aber, wenn du die übereinstimmenden Pixel zählst, und diese dann mit der Gesamtanzahl der Pixel vergleichst. Angenommen du hast 2 Mio Pixel und davon sind sich 1 Mio Pixel gleich dann hast du eine Ähnlickeit von 50 % ! Und wenn du die Ähnlichkeit in Prozent hast, dann kannst du ja auswählen ab wieviel Prozent du zwei Bilder als "ähnlich" markieren willst.

Wie gesagt nurn kleiner Denkanstoss...
 
Danke Schoko.

Klingt eigentlich recht logisch.
Bin gespannt wie lang mein Server für 2 5-Megapixel-Fotos braucht :D

Grüße
Christian
 
Zurück