Wie vergleicht man "inhaltsgleiche" Bilder am besten?

S

Sicaine

Morgen,

öhm ich hab hier viele Bilder worunter auch doppelte sind. Aber nicht doppelt im Sinne von Bidl1bytes = Bild2bytes sondern Inhaltb1 = inhaltb2.

Meine einfache idee ist ansich einfach 5 oder 4 Punkte zu nehmen und sie prozentual abhängig von der Größe des Bildes in eine Farbe umzuwandeln und diese 5 erstellten 5 Farben als Bildprofil zu speichern und mit den anderen zu vergleichen. Denke mal, dass man dadurch definitif sehr ähnliche Bilder finden kann nur gibts ne bessere Möglichkeit? Und vielleicht auch ne schnellere?
 
Das inhaltliche Vergleichen von Bildern ist sehr schwer. Ich glaube XEROX hat erstgerade eine Möglichkeit gefunden, Bilder zuverlässig zu identifizieren.
 
hm XEROX ist:
eine druckermarke in österreich
und dann fand ich heraus dass XEROX auch Xerox Research Centre Europe is und die ne Software entwickelt haben, die ein Motive erkennen kann nur was bringt mir das? oO
 
Also dein weg ist nicht gerade erfolgreich. Da schon ein paar Pixel in einem Bild anders sein könnten und für den Mensch wäre das Bild absolut identisch.

Was das Ziel eher erreichen würde, wäre eine Analyse der Bilder, oder diese in definierbare Pfade umzuwandeln, also als linien Zeichnungen.
Dann könntest du Farbgewichtungen berechnen und anhand der Abweichungen entscheiden ob gleich/ungleich/oder ähnlich.

Aber ich denke mal da haben sich schon Informatikprofessoren die Köpfe reihenweiße zerbrochen.

Wenn du allerdings einen Plausiblen verwendbaren Algorithmus schreibst, dann müsstest du dir warscheinlich keine Sorgen über deine Jobsituation machen :)

Daniel
 
Wenn es Dir nicht darum geht, das wirklich selber zu schreiben, sondern nur die Funktion brauchst, kann ThumbsPlus "the computed similarity between selected images" ermitteln.
Wie die das machen, werden sie sicher nicht verraten.
Wenn es Dir darum geht, so einen Algorithmus selbst zu schreiben, habe ich auch ein paar Ideen:
Das man, wie Du sagst, prozentual arbeiten sollte, halte ich auch für empfehlenswert.
Ich würde nicht einzelne Punkte nehmen, sondern das Bild in ein relativ grobes Raster einteilen (parametrisierbar) und von den in einem Feld enthaltenen Pixeln Durchschnittsfarben ermitteln.
Davon kann man dann z.B. über die mittlere quadratische Abweichung oder Standardabweichung die Ähnlichkeit ermitteln.
Desweiteren würde ich versuchen (wie auch immer das geht) Konturen zu finden und diese als vektorisierte Pfade speichern und die Abweichung der Pfade beider Bilder zueinander bestimmen.
Bei unterschiedlichen Seitenverhältnissen der Bilder sollte man versuchen, das Bild mit der kleineren Breite in dem anderen Bild entsprechend des Rasters in verschiedenen Varianten von links nach rechts positionieren und das mit der kleineren Höhe entsprechend von oben nach unten.
Wenn man so einen Algorithmus selber schreibt, kann ich mir vorstellen, dass die Rechenzeit enorm lang wird.
Eventuell gibt auch eine Analyse der Histogramme (wie auch immer man diese bestimmt, aber dazu wird es im Internet sicher Informationen geben) oder die Farbverteilung Ansatzpunkte für die Ähnlichkeit.

Gruß hpvw

PS: Ha, diesmal habe ich schon bei der Vorschau, dass einzelne Punkte schon erwähnt wurden.
 
Hm diesen Algo will ich definitiv selbst schreiben :) Hat einen ansprechenden Schwierigkeitsgrad ^^

Öhm ach ja ich meinte auch 4-5 Quadrate die mehrere Punkte beinhalten ;-)
Man müssten warscheinlich(für den Speed) das ganze im ersten durchgang sehr grob machen.
 
Ich dachte eher an ein Raster mit ca. 10x10 Quadraten oder sogar noch feiner, evtl. sogar überlappende Quadrate. Aber warten wir mal ab, wie genau Deine Ergebnisse sind.
Es würde mich freuen, wenn Du den Fortlauf Deines Projekts schilderst?
 
Du kannst auch die Farbwerte der Pixel voneinander subtrahieren. Dann hast du pro Pixel einen Abweichungswert, und daraus lässt sich dann ein Abweichungswert für das komplette Bild errechnen. Voraussetzung dafür ist, daß die Bilder gleich groß sind und die gleiche Farbtiefe haben.
 
In einem der ersten Schritte sollte man sich bei einem solchen Projekt vielleicht mal überlegen, was inhaltsgleiche Bilder überhaupt sind und sich daraus ableiten welche Probleme auftreten können. Dann werden sicher schon einige Lösungsansätze der Tonne überantwortet oder man sieht zumindest ein, dass es nicht ganz einfach ist. Man muss nur mal mit Photoshop das freie Transformieren ausprobieren und sich ansehen, wie sich ein Bild so ändern kann, dass nur noch der Mensch die inhaltliche Gleichheit erkennt.
 

Neue Beiträge

Zurück