Erhalte dominante Farben aus dem Bild und verwerfe den Hintergrund

8

Was ist der beste Algorithmus (Ergebnis, nicht Leistung), um dominante Farben aus einem Bild zu holen? Der Algorithmus sollte den Hintergrund des Bildes verwerfen.

Ich weiß, dass ich ein Array von Farben erstellen kann und wie viele davon im Bild erscheinen, aber ich brauche einen Weg, um zu bestimmen, was der Hintergrund und was der Vordergrund ist, und nur die zweite (Vordergrund) beim Lesen zu beachten die dominierenden Farben.

Das Problem ist sehr schwierig, besonders für Gradienten-Hintergründe oder Hintergründe mit Mustern (nicht einfach)

    
astropanic 14.09.2009, 14:20
quelle

4 Antworten

8

Das Isolieren des Vordergrunds vom Hintergrund übersteigt den Rahmen dieser speziellen Antwort, aber ...

Ich habe festgestellt, dass die Anwendung eines Pixelierungsfilters auf ein Bild eine wirklich gute Auswahl an "durchschnittlichen" Farben ergibt.

Vorher

Ссылка

Nach

Ссылка

Manchmal benutze ich diesen Ansatz, um eine Palette von Farben mit einer bestimmten Stimmung abzuleiten. Ich finde zuerst ein Foto mit den allgemeinen Tönen, nach denen ich suche, pixeliere und dann aus dem resultierenden Bild.

(Danke an diese Seite für die Bilder, die über Google Bildersuche gefunden wurden)

    
Drew Noakes 14.09.2009 14:27
quelle
6

Die Farbzusammenfassung ist ein hübscher Sweet Spot für Informationen zu diesem Thema, ganz zu schweigen von ihrer scheinbar kostenlosen XML-Web-API erstellt beschreibende Farbstatistiken für ein Bild Ihrer Wahl und gibt folgende Formatierungen mit Farbfeldern in HTML oder als XML zurück ...

  • Was ist der durchschnittliche Farbton, die Sättigung und der Wert in meinem Bild?
  • Was ist die RGB-Farbe, die für das Bild am repräsentativsten ist?
  • Wie sehen die RGB- und HSV-Histogramme aus?
  • Was ist die visuell lesbare Farbbeschreibung des Bildes (z. B. dunkles reines Blau)?
  

Der Zweck dieses Dienstprogramms besteht darin, Metadaten zu generieren, die eine Zusammenfassung von   Bildfarbeigenschaften zur Aufnahme in eine Bilddatenbank,   wie Flickr. Insbesondere wird dieses Tool zum Generieren verwendet   Metadaten für die Flickr-Gruppe Farbfelder.

Aber meiner Erfahrung nach .. dieses Werkzeug vermisst immer noch die "menschenlesbare" / offensichtliche "Hauptfarbe", VIELE DER ZEIT. Dumme Maschinen!

    
Alex Gray 25.07.2011 05:14
quelle
4

Ich würde sagen, dass dieses Problem eher "unmöglich" als "sehr schwer" ist. Der einzige Ansatz, den ich mir vorstellen kann, wäre die Annahme, dass der Hintergrund eines Bildes wahrscheinlich aus festen Blöcken ähnlicher Farben besteht, während der Vordergrund wahrscheinlich aus kleineren Blöcken ungleicher Farben besteht.

>

Wenn diese Annahme allgemein zutrifft, könnten Sie das gesamte Bild scannen und die Pixel entsprechend ihrer Ähnlichkeit oder Unähnlichkeit mit benachbarten Pixeln gewichten. Mit anderen Worten, wenn die Nachbarn eines Pixels (innerhalb eines beliebigen Radius, vielleicht) alle ähnliche Farben hätten, würden Sie dieses Pixel nicht in die Gesamtschätzung einbeziehen. Wenn die Nachbarn dazu neigen, sehr unterschiedliche Farben zu haben, würden Sie das Pixel stark belasten, vielleicht im Verhältnis zum Grad der Differenz.

Dies funktioniert möglicherweise nicht perfekt, aber es würde zumindest dazu neigen, große Schwaden ähnlicher Farben auszuschließen.

    
MusiGenesis 14.09.2009 14:32
quelle
1

Soweit mein Wissen über Bildverarbeitungsalgorithmen reicht, gibt es keinen sicheren Weg, den "Vordergrund" zu bekommen; Es ist nur möglich, Grenzen zwischen Objekten zu erhalten. Sie werden wahrscheinlich mit einem Durchschnitt oder Ihrer vorgeschlagenen Array-Zählmethode auskommen müssen. In diesem Fall sollten Sie Farben mit höherer Sättigung eine höhere "Punktzahl" geben, da sie viel stärker hervortreten.

    
aviraldg 14.09.2009 14:27
quelle

Tags und Links