Framework gesucht

  • Es gibt mehr Möglichkeiten "Übereinstimmung" zu definieren als man an zwei Händen abzählen könnte. Geht es um gleiche/ähnliche Pixelwerte oder um ähnliches Aussehen? Sind beide Bilder gleich gross?
    Du kannst auch mit Kanonen drauf schiessen und Dir den Visible Difference Predictor von Daly anschauen, welcher die menschliche Wahrnehmung mit einbezieht. Wenn ich mich recht erinnere, gibt es da Code (evtl. aber nur frei für Research?)

    Oder einfach L2-Norm, also Absolutbetrag der Differenzen aller Pixel. Ich hab mal gehört, die L1,8-Norm sei besser für Bilder, aber was weiss ich.

    Wenn die Bilder nicht aufeinander ausgerichtet sind, musst Du wahrscheinlich vorher irgendeine Registrierung vornehmen, da gibt es auch zuhauf Ansätze, sollte auch genügend für mobile Plattformen geben.

    Also, so generell kann man Deine Frage nicht beantworten ;)
    C++
  • Bilder nach Ähnlichkeit sortieren? Da hast Du was vor. Probier mal google scholar, da sollte es etwa 1000 Paper zu geben. Wenn Du Glück hast auch "research" Code. Fertige Frameworks kenn ich da nicht, aber "Image Retrieval" ist jetzt nicht ganz mein Gebiet.

    Wiegesagt, zwei Bilder kannst Du über die Summe der absoluten Differenzen der Pixelwerte vergleichen. Gut wäre wahrscheinlich, erstmal einen anderen Farbraum zu nehmen, etwa HSV. Die Summe kannst Du dann durch die maximale Differezensumme teilen und hast dann ein Prozentmass.
    Das ist aber sicher nicht transitiv und darum ungünstig zum sortieren, aber wiegesagt, nicht mein Fachgebiet.

    Schau Dich halt mal im Bereich "Image Retrieval" um. Hatte mal einen Vortrag von Leuten der Uni Berlin gehört, da kannst Du vielleicht mal schauen:
    cg.tu-berlin.de/menue/research…tabases_-_ronald_richter/
    Da konnte man durch die Bilder "surfen" und immer die ähnlichsten in der Datenbank wurden angezeigt, zu denen man dann springen konnte. Hatte, wenn ich mich recht erinner, aber ein paar Schwächen.

    Nachtrag:
    Was in den meisten einfachen Fällen wohl sehr gut funktioniert, sind Histogramme. Am besten also:
    - Bild in HSV Farbraum
    - 2D Histogram über H und S, V wird ignoriert
    - Euklidsche oder Kosinus-Distanz oder Histogram-Intersection zwischen zwei Histogrammen beschreibt dann die Ähnlichkeit
    - Du kannst das in einen ...ummm.. hochdimensionalen Raum packen, KD-Tree aufbauen, und schnell Nachbarn, also ähnliche Bilder, finden....
    - Kann man recht schnell implementieren und sollte auch auf mobilen Plattformen ganz gut laufen
    C++

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von zerm ()