Ich möchte die 3-4 Hauptfarben einer JPG-Bilddatei erkennen können.
Beispielbilder und Beispielcode unten:
- rot, schwarz, weiß
- weiß, grün, pink
- blau, gelb, schwarz
Ich habe einige code , um das Folgende zu erhalten, hat aber immer noch Probleme beim Gruppieren von Farben.
%Vor%Idealerweise müssen Hintergrundfarbe (#FFFFFF) und schwarzer Umriss / Schattierung ignoriert werden.
Kann html-Farben online hier kopieren
Vielen Dank für Ihre Hinweise und diesen Artikel .
Hier ist die Lösung:
GetWebColors () - Füllt die Liste aller benannten Webfarben auf ( Ссылка )
GetNamedWebColor_NearestMatch (Farbe) - Für jede gegebene Farbe (es gibt 16.777.216!) gibt die nächste 'Benannte' Webfarbe zurück (1 von 140)
Tuning: unten stehende Codewerte für diesen (dh für den Farbton, wollen wir 10 Grad min ändern zwischen Farben.)
%Vor%Gibt jetzt aus
Ausgabe für Beispiel1.jpg ist: Gainsboro, Crimson, DarkSlateGray: jetzt in der Nähe von weiß, rot, schwarz
Ausgabe für example2.jpg ist: Gainsboro, DarkKhaki, Pink: jetzt in der Nähe von weiß, grün, pink
Code:
%Vor%Ich habe so eine Color Analyzer App gemacht, wo Sie sehen können Wie funktioniert funktioniert ? Sie sind auf dem richtigen Weg. Vergrößern Sie das Bild bei Bedarf auf eine Größe von 128 x 128, um die Leistung zu erhalten.
Dann müssen Sie den RGB-Wert in Farbwinkel mit C # konvertieren.
Nun müssen Sie eine beliebige Sortierung der Farbzählung. Ich empfehle, die Farbwinkel von 360 ° = 360 Stück zum Beispiel nur auf 36 Stück zu reduzieren. Jetzt können Sie einfach die erste Farbe in der sortierten Liste mit den meisten Farben aufnehmen.
Ich denke, Sie sollten einige Bildverarbeitungsbibliotheken wie Imagemagick oder Opencv verwenden. Es gibt Methoden zum Extrahieren von Pixelfarben in diesen Bibliotheken. Sie müssen diese Bibliotheken nur mit Ihrem Projekt verknüpfen. ich habe imagemagick verwendet, um große farben aus bildern zu extrahieren, aber das war eine cpp-anwendung.ich denke .net interfece gibt es auch für imagemagick
Danke
Ich denke, wenn Sie einige Bibliotheken nicht verwenden möchten, sollten Sie HSL anstelle von RGB für Berechnungen Ссылка verwenden
Tags und Links c# image image-processing colors rgb